Story Transcript
UNIVERSIDAD DE GRANADA ESTUDIOS DE INGENIERÍA ELECTRÓNICA ESTUDIO Y SIMULACIÓN CON MATLAB DE LA INTERFAZ DE RADIO DE GSM REALIZADO POR: RAFAEL CASAÑAS ÁVILA DIRIGIDO POR: JOSÉ LUÍS PÉREZ CÓRDOBA DEPARTAMENTO: ELECTRÓNICA Y TECNOLOGÍA DE COMPUTADORES PALABRAS CLAVE: Sistemas Celulares, GSM, Arquitectura de Red GSM, Interfaz de Radio, Codificación de la Fuente, Codificación del Canal, Códigos Cíclicos, Códigos Convolucionales, Modulación Digital GMSK, Algoritmo de Viterbi. RESUMEN: Con el presente trabajo se trata de tener una visión general de los sistemas de telefonía celulares y en particular de estándar GSM. Se va a profundizar en la Interfaz de Radio de GSM fijándonos en las técnicas especiales del procesado de voz, así como de los sistemas de codificación utilizados en GSM. Finalmente se realizarán algunas simulaciones con el programa MATLAB, para ver implementadas algunos de los puntos tratados en el trabajo.
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
INDICE I.- ESPECIFICACIONES DEL PROYECTO 1.- MOTIVACIÓN ................................................................................................... 5 2.- OJETIVOS .......................................................................................................... 5 II.- DESARROLLO DEL PROYECTO 1.- Introducción ........................................................................................................ 6 1.1.- GSM: el nacimiento de un estándar ............................................................ 6 1.2.- Elecciones Técnicas .................................................................................... 8 1.3.- Nacida digital .............................................................................................. 10 2.- Sistemas Celulares .............................................................................................. 12 2.1.- Introducción a los sistemas celulares .......................................................... 12 2.2.- Reutilización de frecuencias ........................................................................ 14 2.3.- Estrategias de asignación de canales .......................................................... 16 2.4.- Gestión de la interfaz de radio .................................................................... 17 2.5.- Consecuencias de la movilidad .................................................................. 18 2.5.1.- Gestión de la localización ................................................................... 18
Página 2
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
2.5.2.- Handover (función de traspaso) .......................................................... 20 2.6.- Roaming (función de seguimiento) ............................................................ 22 2.7.- Interferencias y capacidad del sistema ....................................................... 23 2.7.1.- Interferencia co-canal y capacidad del sistema .................................. 24 2.7.2.- Interferencia entre canales adyacentes ............................................... 26 2.7.3.- Control de Potencia para reducir las Interferencias ........................... 27 2.8.- División de celdas (cell-splitting) .............................................................. 27 3.- Arquitectura de red en GSM ................................................................................... 29 3.1.- Introducción a la arquitectura de red celular .................................................. 29 3.2.- Organización interna de GSM ......................................................................... 31 3.3.- Subsistemas en GSM ....................................................................................... 32 3.3.1.- La Estación Móvil (MS) ........................................................................... 32 3.3.2.- El Subsistema de la Estación Base (BSS) ................................................ 33 3.3.3.- El Subsistema de Red (NSS) .................................................................... 36 3.3.4.- El Centro de Operaciones y Mantenimiento (OSS) ................................. 39 4.- La Interfaz de Radio ................................................................................................ 39 4.1.- Introducción ..................................................................................................... 39 4.2.- Acceso a sistemas truncados ............................................................................ 40
Página 3
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
4.2.1.- Acceso Múltiple por División en Frecuencia (FDMA) ............................ 40 4.2.2.- Acceso Múltiple por División en el Tiempo (TDMA) ............................ 41 4.2.3.- Acceso Múltiple por división del Espacio (SDMA) ................................ 42 4.2.4.- Acceso Múltiple por División de la Codificación (CDMA) ..................... 42 4.2.5.- Acceso Múltiple por Saltos de Frecuencia (FHMA) ................................. 45 4.2.6.- Operaciones Dúplex .................................................................................. 45 4.2.6.1.- Dúplex por división en Frecuencia (FDD) ........................................ 46 4.2.6.2.- Dúplex por División en el Tiempo (TDD) ........................................ 46 4.3.- El Canal de Radio ............................................................................................. 46 4.3.1.- Características del Canal de Radio ........................................................... 46 4.3.2.- Condiciones Estáticas ............................................................................... 47 4.3.3.- Condiciones Dinámicas ............................................................................ 47 4.4.- Frecuencias y Canales Lógicos ......................................................................... 49 4.4.1.- Canales de Tráfico .................................................................................... 52 4.4.2.- Canales de Control .................................................................................... 54 4.4.2.1.- Canales Broadcast (BCH) ................................................................. 55
Página 4
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
4.4.2.2.- Canales de Control Comunes (CCCH) ............................................. 57 4.4.2.3.- Canales de Control Dedicados (DCCH) ........................................... 58 4.5.- Ejemplo de una llamada GSM ......................................................................... 60 4.6.- Estructura de las tramas en GSM ..................................................................... 62 5.- Procesado de Señal en GSM .................................................................................... 65 5.1.- Introducción ..................................................................................................... 65 5.2.- Codificación de la fuente ................................................................................. 65 5.2.1.- Requisitos para la codificación de la voz en GSM .................................. 66 5.2.2.- Funcionamiento de la codificación - descodificación de la voz .............. 67 5.2.3.- Codificación por Predicción Lineal (LPC) y Análisis por Excitación de Pulsos Regulares (RPE) .................................................... 69 5.2.4.- Análisis por Predicción de Periodo Largo (LTP) ..................................... 71 5.2.5.- Transmisión Discontinua ......................................................................... 72 5.3.- Codificación del Canal .................................................................................... 75 5.3.1.- Introducción a la codificación del canal .................................................. 75 5.3.1.1- Chequeo de Redundancia Cíclica (CRC) ......................................... 77 5.3.1.2- Códigos Convolucionales ................................................................. 79 5.3.1.3.- Descodificación de códigos convolucionales de máxima probabilidad. El Algoritmo de Viterbi ............................................. 88 Página 5
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
5.3.1.4.- Entrelazado ("Interleaving") ............................................................ 91 5.3.2.- Codificación del Canal en GSM .............................................................. 91 5.3.2.1.- CRC en GSM ................................................................................... 91 5.3.2.2.- Código convolucional en GSM ........................................................ 92 5.3.2.3.- "Interleaving" en GSM ..................................................................... 95 5.4.- Modulación Digital en GSM ........................................................................... 96 5.4.1.- Modulación MSK (Minimum Shift Keying) ........................................... 96 5.4.2.- Modulación GMSK (Gaussian Minimum Shift Keying) ......................... 99 6.- Simulaciones con Matlab ...................................................................................... 106 6.1.- Introducción ................................................................................................... 106 6.2.- Codificación de la fuente ............................................................................... 106 6.3.- Codificación del canal ................................................................................... 109 6.4.- Modulación digital ........................................................................................ 111 6.5.- Demodulación y Descodificación ................................................................. 117 6.6.- Resultados de las Simulaciones .................................................................... 122 III.- RESUMEN, CONCLUSIONES ......................................................................... 125
Página 6
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
IV.- BIBLIOGRAFÍA ................................................................................................. 127 V.- APENDICES......................................................................................................... 129 Apéndice 1.- Uso del programa de codificación "TOAST" .................................. 129 Apéndice 2.- Programas en Matlab ...................................................................... 136 Apéndice 3.- Acrónimos y Abreviaturas .............................................................. 155
Página 7
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
I.- ESPECIFICACIONES DEL PROYECTO
1.- Motivación La
realización
de
dicho
trabajo
surge
como
una
propuesta de D. José Luís Pérez Córdoba, Profesor Titular del
Departamento
Computadores
de
de la
Electrónica
Universidad
y
de
Tecnología
Granada,
para
de la
realización del Trabajo Final de Carrera de los estudios de Ingeniería Electrónica del alumno Rafael Casañas Ávila. Se decidió realizar este trabajo, por la gran importancia que han adquirido en nuestros días las comunicaciones móviles en general, y en particular el estándar GSM. 2.- Objetivos Con este trabajo se pretende tener una visión general de las comunicaciones móviles terrestres, explicando cada uno
de
los
conceptos
fundamentales
de
la
telefonía
inalámbrica. Una vez introducidos en la telefonía celular, se explicará a grandes rasgos el estándar de comunicaciones móviles GSM, y posteriormente se profundizará en el estudio de su interfaz de radio, tratando de comprender tanto el canal de radio, como los métodos de comunicación de esta interfaz.
Finalmente,
se
van
a
realizar
algunas
simulaciones con el programa Matlab, en las que se podrán apreciar
mejor
los
conceptos
desarrollo de este trabajo.
Página 8
explicados
durante
el
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
II.- Desarrollo del Proyecto 1.- Introducción
1.1.- GSM: el Nacimiento de un estándar Desde el principio de los 80, después de que el NMT ("Nordic
Mobile
Telephone"),
sistema
de
telefonía
móvil
analógico de cobertura escandinava, funcionara con éxito, fue obvio para varios países europeos que los sistemas analógicos existentes, tenían limitaciones [3]. Primero, la potencial demanda de servicios móviles fue mayor de la capacidad
esperada
de
las
existentes
redes
analógicas.
Segundo, las diferentes formas de operación no ofrecían compatibilidad para los usuarios de móviles: un terminal TACS
(servicio
de
telefonía
móvil
analógico
puesto
en
funcionamiento en el Reino Unido en 1985) no podía acceder dentro de una red NMT, y viceversa. Además, el diseño de un nuevo sistema de telefonía celular requiere tal cantidad de investigación que ningún país europeo podía afrontarlo de forma
individual.
Todas
estas
circunstancias
apuntaron
hacia el diseño de un nuevo sistema, hecho en común entre varios países. El principal requisito previo para un sistema de radio común, es el ancho de banda de radio. Esta condición había sido ya prevista unos pocos años antes, en 1978, cuando se decidió reservar la banda de frecuencia de 900 ± 25 MHz para comunicaciones móviles en Europa. Este Quedaba
problema organizar
fue el
el
mayor
trabajo.
obstáculo El
solucionado.
mundo
de
la
telecomunicación en Europa, siempre había estado regido por la
estandarización.
El
CEPT
("Conférence
Página 9
Européene
des
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Postes et Télécommunications") es una organización para la estandarización
presente
en
más
de
20
países
europeos.
Todos estos factores, llevaron a la creación en 1982 de un nuevo cuerpo de estandarización dentro del CEPT, cuya tarea era
especificar
un
único
sistema
de
radiocomunicaciones
para Europa a 900 MHz. El recién Nacido "Groupe Spécial Mobile" (GSM) tuvo su primer encuentro en Diciembre de 1982 en Estocolmo, bajo la presidencia de Thomas Haug de la administración sueca. Treinta y una personas de once países estuvieron presentes en este primer encuentro. En 1990, por requerimiento
del
Reino
Unido,
se
añadió
al
grupo
de
estandarización la especificación de una versión de GSM a la banda de frecuencia de 1800 ± 75 MHz. A esta variante se le llamó DCS1800 ("Digital Cellular System 1800"). El significado actual de las siglas GSM se ha cambiado y en la actualidad se hacen corresponder con "Global System for Mobile communications". La elaboración del estándar GSM llevó casi una década. Las principales metas alcanzadas a lo largo de esta década, se muestran en la tabla 1.1.
Fecha
Logros
1982
Se crea el "Grupo Especial Móvil" dentro del CEPT
1986
Se crea un Núcleo Permanente
1987
Se escogen las principales técnicas de transmisión de radio basadas en la evaluación de un prototipo
1989
GSM se convierte en un comité técnico del ETSI
1990
La fase 1 de las especificaciones del GSM900 se finalizan Se comienza con el estándar DCS1800 Comienzan a funcionar los primeros sistemas (Telecom 91 de
1991
exhibición) 1992
La mayoría del los operadores europeos de GSM900 comienzan las operaciones comerciales
Tabla 1.1
Página 10
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
1.2.- Elecciones Técnicas Algunos de los propósitos del sistema estaban claros desde el principio: uno de ellos era que el sistema debía permitir la libre circulación de los abonados en Europa ("roaming"). Prácticamente hablando, esto significa que un abonado de una determinada red nacional pueda acceder a todos los servicios cuando viaja entre varios países. La propia
estación
móvil
GSM
debe
permitir
al
usuario
el
llamar o ser llamado donde quiera que se encuentre dentro del área internacional de cobertura. Estaba claro también que la capacidad ofrecida por el sistema
debería
ser
mejor
que
las
existentes
redes
analógicas. En 1982, los requerimientos básicos para GSM, estaban establecidos. Éstos fueros revisados ligeramente en 1985, quedando establecidos principalmente como siguen: Servicios: - El sistema será diseñado de forma que las estaciones móviles se puedan usar en todos los países participantes. - El sistema debe permitir una máxima flexibilidad para otros tipos de servicios, p. ej. los servicios relacionados con la RDSI (Red Digital de Servicios Integrados. -
Los
servicios
ofrecidos
en
las
redes
PSTN
("Public
Switching Telephone Network") e ISDN ("Integrated Services Digital Networw"), así como otras redes públicas deben ser posibles, en la medida de las posibilidades, en el sistema móvil. - Debe ser posible la utilización de las estaciones móviles pertenecientes al sistema a bordo de barcos, como extensión
Página 11
Trabajo Final de Carrera Rafael Casañas Ávila del
servicio
Estudio y Simulación con Matlab de la Interfaz de radio de GSM móvil
terrestre.
Se
debe
prohibir
el
uso
aeronáutico de las estaciones móviles GSM. - En lo referente a las estaciones, a parte de las montadas en vehículos, el sistema debe ser capaz de suministrar estaciones de mano así como otras categorías de estaciones móviles. Calidad de los servicios y seguridad: - Desde el punto de vista del abonado, la calidad de voz telefónica en el sistema GSM debe ser al menos tan buena como
la
que
tenía
la
primera
generación
de
sistemas
analógicos a 900 MHz. - El sistema debe ser capaz de ofrecer encriptación de la información del usuario pero debe permitir la posibilidad de que esto no influya en el coste de aquellos abonados que no requieran este servicio. Utilización de la radio frecuencia: -
El
sistema
permitirá
un
gran
nivel
de
eficiencia
espectral así como la posibilidad de servicios para el abonado a un coste razonable, teniendo en cuenta tanto las áreas
urbanas
como
rurales
y
el
desarrollo
de
nuevos
servicios. -
El
sistema
permitirá
la
operación
en
el
rango
de
frecuencias comprendido entre los 890-915 MHz y entre los 935-960 MHz. - El nuevo sistema de 900 MHz para comunicaciones móviles del CEPT, debe coexistir con los anteriores sistemas en la misma banda de frecuencias.
Página 12
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Aspectos de Red: -
El
plan
de
identificación
debe
estar
basado
en
la
recomendación correspondiente del CCITT (Comité Consultivo Internacional de Telecomunicaciones). - La numeración del plan estará basada en la recomendación correspondiente del CCITT. -
El
diseño
del
sistema
debe
permitir
diferentes
estructuras de carga y velocidades para su utilización en diferentes redes. - Para la interconexión de los centros de conmutación y los registros
de
localización,
se
usará
un
sistema
de
señalización internacionalmente estandarizado. - No se debe requerir ninguna modificación significativa de las redes públicas fijas. - El sistema GSM debe habilitar la implementación de la cobertura común de las redes públicas móviles terrestres ( "Públic Land Mobile Network" ó PLMN). -
La
protección
información
de
de la
la red
información debe
ser
y
el
control
proporcionada
de
la
por
el
sistema. Aspectos de costes: - Los parámetros del sistema deben ser escogidos teniendo en
cuenta
un
coste
límite
del
sistema
completo,
principalmente el de las unidades móviles. 1.3.- Nacida Digital Desde el principio quedó claro, de forma extraoficial, que
el
sistema
debía
estar
basado
en
una
transmisión
digital, y que la voz debería estar representada por una cadena digital a una velocidad de 16 kbps. La decisión oficial, sin embargo, no fue tomada hasta 1987.
Página 13
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Desde 1984 hasta 1986, el GSM se encargó de comparar las diferentes posibilidades técnicas para la transmisión (digital o analógica), en particular en sus respectivas eficiencias espectrales (cuál aprovechaba mejor el espectro de
frecuencias).
Se
decidió
comparar
varias
propuestas
técnicas de prototipos permitidos en la actual transmisión de
radio.
En
1985,
las
administraciones
francesas
y
alemanas de Correos y Telégrafos unieron sus esfuerzos para realizar
cuatro
estudios
prototipos.
El
testeo
incluyendo
estos
Escandinavos,
se
laboratorios
del
que
comparativo
cuatro realizó CNET
condujeran
más en
de
los
otros
tantos
ocho
prototipos,
cuatro
prototipos
Diciembre
("Centre
a
de
National
1986
en
los
d'Etudes
des
Télécommunications") cerca de París, bajo el control del Núcleo Permanente. Todos estos prototipos hicieron uso de la transmisión digital, y la mayoría fueron propuestos por compañías de teléfonos. Los resultados de las comparaciones se publicaron a comienzos de 1987. Hubo grandes discusiones sobre el modelo que iba a ser escogido, debido a que podía afectar al prestigio de la empresa que lo propuso. Sólo se decidieron las características del método de transmisión. Éstas fueron las siguientes: • Tamaño
medio
separación
de
de
la
banda
de
portadoras),
transmisión en
(200
comparación
KHz con
de los
sistemas de banda estrecha (12,5 ó 25 KHz que existían en los
sistemas analógicos) o con los sistemas de banda
ancha (uno de los candidatos propuso una separación de portadoras de 6 MHz); • Transmisión digital de voz a una velocidad no superior a
16 kbps;
Página 14
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
• Multiplexación en el tiempo de orden 8, con una evolución
en el futuro hacia la multiplexación de orden 16 cuando se defina un codificador de voz a la mitad de velocidad; • "Hopping" de frecuencias lento. El "hopping", consiste en
cambiar la frecuencia usada por un canal a intervalos regulares de tiempo. En GSM la frecuencia de transmisión permanece constante durante la transmisión de una trama completa.
Esta
transmisión
técnica
militares,
procede y
se
de
los
decidió
sistemas
incluirla
en
de las
principales características de la transmisión de radio de GSM,
además
también
de
para
frecuencias,
utilizarla conseguir
y
para
por
motivos
una
mayor
paliar
los
de
seguridad,
diversidad efectos
de
de los
desvanecimientos de tipo Rayleigh. 2.- Sistemas Celulares
En
este
apartado,
vamos
a
repasar
alguno
de
los
conceptos fundamentales dentro de los sistemas celulares que
no
solo
son
propios
de
GSM,
sino
que
sirven
para
cualquier sistema de comunicación moderno inalámbrico.
2.1 Introducción a los sistemas celulares El concepto de sistema celular [1] fue un gran avance en la resolución del problema de la congestión espectral y de
la
capacidad
del
usuario.
Éste
ofrecía
una
gran
capacidad en una localización limitada del espectro sin grandes cambios tecnológicos. La idea de un sistema celular consiste en un sistema basado en varios niveles de celdas: un transmisor de gran potencia (celda grande) con muchos transmisores de baja potencia (celdas pequeñas) (Ver Figura 1), cada una proporcionando cobertura a sólo una pequeña porción del área de servicio. A cada estación base se le asigna una porción del número total de canales disponibles
Página 15
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
en el sistema completo, y a las estaciones base cercanas se les asignan diferentes grupos de canales de forma que los canales
disponibles
son
asignados
en
un
número
relativamente pequeño de estaciones base vecinas. A las estaciones base vecinas se les asigna diferentes grupos de canales
de
estaciones control)
forma base
se
(y
que
las
entre
reducen.
interferencias
los
usuarios
Espaciando
entre
móviles
las
bajo
sistemáticamente
su las
estaciones base y sus grupos de canales a través de un mercado, los canales disponibles se distribuyen a través de una región y pueden ser reutilizadas tantas veces como sea necesario, siempre que la interferencia entre estaciones con el mismo canal se mantenga por debajo de unos niveles aceptables.
Figura 1.- Ejemplo de un sistema celular
Conforme
crece
la
demanda
de
servicios,
se
debe
incrementar el numero de estaciones base, proporcionando una
capacidad
de
radio
adicional
sin
incremento
del
espectro de radio. Este principio es el fundamento de todos los modernos sistemas de comunicaciones inalámbricos, y en particular de GSM. 2.2.- Reutilización de frecuencias
Página 16
Trabajo Final de Carrera Rafael Casañas Ávila Los
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
sistemas
de
radio
celulares
se
basan
en
la
colocación inteligente así como de la reutilización de los canales a través de una región de cobertura. Al proceso de diseño de seleccionar y colocar grupos de canales en todas las
estaciones
reutilización
base
dentro
de
de
frecuencias
un
sistema, o
se
le
llama
planificación
de
frecuencias.
Figura 2.- Reutilización de frecuencias La Figura 2 ilustra el concepto de reutilización de frecuencias, donde las celdas con la misma letra utilizan el mismo grupo de canales. La forma hexagonal de la celda mostrada en la figura es conceptual y es un modelo simple de la cobertura de radio para cada estación base, pero ha sido universalmente adoptado dado que el hexágono permite un análisis fácil y manejable de un sistema celular. La cobertura
real
de
una
celda
se
conoce
como
huella
("footprint") y se determina de los modelos de campo o de los modelos de predicción de la propagación.
Página 17
Trabajo Final de Carrera Rafael Casañas Ávila Cuando
Estudio y Simulación con Matlab de la Interfaz de radio de GSM usamos
hexágonos
para
modelar
las
áreas
de
cobertura, los transmisores de las estaciones base pueden estar bien en el centro de las celdas o bien en tres de las esquinas de las seis de las celdas. Normalmente las antenas omni-direcionales se suelen colocar en el centro de las celdas, y las antenas de dirección selectiva se suelen colocar en las esquinas de las celdas. Para
comprender
el
concepto
de
reutilización
de
frecuencia, consideremos un sistema celular que tenga un total de S canales dúplex disponibles para su utilización. Si a cada celda se le colocan un grupo de k canales (k k a una velocidad de R/Rc bps, en donde el factor Rc es un valor adimensional llamado redundancia, y que es k/n (siempre va a ser menor que la unidad). Un código convolucional implica el concepto de memoria, ya que se forma a partir de un registro de desplazamiento (máquina de estados finitos).
Página 78
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
En GSM se aplican estas dos técnicas de codificación, pero
sólo
a
unos
determinados
bits.
Como
vimos
en
el
apartado anterior, la codificación de la fuente a velocidad completa, da 260 bits cada 20 ms (13 kbps). Estos bits nos dan los diferentes parámetros del método de codificación de la fuente RPE/LPC-LTP, que vimos anteriormente. Pero no todos
los
bits
de
estos
parámetros
tenían
la
misma
importancia. Como vimos en la tabla 5.1, estos se ordenaban en 3 clases de importancia. Pues bien, dependiendo de la clase de importancia, vamos a dar una protección mayor o no.
Figura 28.- Distintas codificaciones para los diferentes bits A los 50 primeros bits (grupo Ia), que son los más importantes, se les aplica un chequeo de paridad, mediante un código cíclico de 3 bits. Estos 53 bits así obtenidos, junto con los 132 bits siguientes (grupo Ib), más 4 bits de cola, hacen un total de 189 bits a los que se les aplica un código convolucional de razón 1/2 y de profundidad 5, con lo que obtenemos 378 bits de salida que sumados con los 78 bits
que
forman
el
grupo
II,
Página 79
y
que
no
llevan
ninguna
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
protección, hacen un total de 456 bits cada 20 ms, lo cual nos da una velocidad de salida de 22.8 kbps. A
continuación
vamos
a
pasar
a
describir
en
más
detalle cada una de las dos codificaciones de los que se componen la codificación del canal. 5.3.1.1.- Chequeo de Redundancia Cíclica (CRC) El código bloque utilizado es un CRC que añade 3 bits al final de la secuencia de 50 bits del grupo Ia [5]. El
CRC
es
una
de
las
herramientas
más
comunes
y
potentes para la detección de errores. Dado un bloque de datos de k bits, el transmisor va a generar una secuencia de m bits, de forma que la trama resultante está formada por los k bits más los m bits generados. Para generar este tipo de secuencias existen numerosos métodos, como son la aritmética módulo 2 y los métodos polinómicos, pero el que nos interesa a la hora de su implementación software es la lógica digital, que es el que vamos a pasar a explicar. El proceso CRC se puede representar como un circuito divisor
consistente
en
elementos
XOR
y
registros
de
desplazamiento. El registro de desplazamiento es una cadena de
dispositivos
de
almacenamiento
dispositivo
tiene
una
actualmente
almacenado,
salida, y
una
que
de
1
bit.
indica
entrada.
A
el
Cada valor
instantes
discretos de tiempo, conocidos como ciclos de reloj, el valor almacenado se reemplaza por su valor de la entrada. El registro completo se desplaza simultáneamente de bit en bit.
Página 80
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
El registro contiene tantos elementos de memoria como el grado del divisor que queramos menos uno, y tenemos tantos contactos XOR como bits de paridad queramos formar. Consideremos el ejemplo siguiente: Sea
el
mensaje
M(D)
9
7
3
representando
el
siguiente
2
polinomio: M(D)= D + D + D + D + 1 y sea el divisor: P(D) = D5 + D4 + D2 + 1 El
registro
de
desplazamiento
que
implementa
este
ejemplo es el mostrado en la Figura 29 en donde cada Ci se corresponde
con
un
elemento
de
memoria,
y
los
módulos
sumadores son funciones XOR.
C4
+
C3
C2
+
C1
C0
+
Figura 29.- Implementación del CRC del ejemplo Primero memoria
suponemos
están
a
0.
que El
todos
mensaje,
los o
dispositivos
de
dividendo,
se
el
introduce, bit a bit, empezando por el más significativo. En la Tabla 5.2 podemos observar todas las operaciones paso a
paso.
Cada
almacenados Finalmente,
en
fila
de
los
después
de
la
tabla
cinco
muestra
elementos
introducir
el
los
del
mensaje,
valores registro. añadimos
tantos bits como sea el grado el polinomio generador para limpiar los registros, y así si leemos finalmente obtenemos los 5 bits de paridad que debemos añadir al final del mensaje, que en este caso es la secuencia 01110.
Página 81
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
c4
c3
c2
c1
c0
c4+c3
c4+c1 c4+ent
ent
Inicial
0
0
0
0
0
0
0
1
1
Paso 1
0
0
0
0
1
0
0
0
0
Paso 2
0
0
0
1
0
0
1
1
1
Paso 3
0
0
1
0
1
0
0
0
0
Paso 4
0
1
0
1
0
1
1
0
0
Paso 5
1
0
1
0
0
1
1
1
0
Paso 6
1
1
1
0
1
0
1
0
1
Paso 7
0
1
1
1
0
1
1
1
1
Paso 8
1
1
1
0
1
0
1
1
0
Paso 9
0
1
1
1
1
1
1
1
1
Paso 10
1
1
1
1
1
0
0
1
0
Paso 11
0
1
0
1
1
1
1
0
0
Paso 12
1
0
1
1
0
1
0
1
0
Paso 13
1
1
0
0
1
0
1
1
0
Paso 14
0
0
1
1
1
0
1
0
0
Paso 15
0
1
1
1
0
1
1
0
-
Tabla 5.2.- estados en el CRC del ejemplo En el receptor se usa la misma lógica. La cadena de bits
transmitida
se
introduce
en
el
mismo
registro
de
desplazamiento. Si no se han producido errores, el registro contendrá al final de la secuencia todo ceros si no se han producido errores. 5.3.1.2.- Códigos Convolucionales En los códigos bloques, el codificador aceptaba un mensaje de k bits y generaba una palabra código de n bits [6]. Es decir, las palabras código se producen bloque a bloque por lo que debíamos de introducir un bloque completo para
generar
la
secuencia
código.
Hay
aplicaciones
sin
embargo, donde los bits mensaje entran en serie en lugar de en bloques, por lo que se deben de usar "buffers" de tamaño considerable para almacenar momentáneamente los bloques a codificar. En estas situaciones, el uso de la codificación convolucional
se
convierte
en
el
método
preferido.
Un
codificador convolucional opera sobre el mensaje de entrada de forma serie.
Página 82
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
El codificador de un código convolucional binario de razón 1/n, se puede ver como una máquina de estados finitos que consiste en un registro de desplazamiento de M etapas con conexiones de sumadores módulo 2 (XOR) como se ha visto antes, y un multiplexor que convierte en serie la salida de los sumadores. Una secuencia de mensaje de L bits produce una secuencia de salida codificada de longitud n(L + M) bits. La razón del codificador ("rate") viene dada por
r= Normalmente,
L
bits / simbolo
n( L + M )
tenemos
que
L>>M.
Por
lo
tanto,
la
velocidad se simplifica como
r≈
1 n
La profundidad de un código convolucional, expresado en términos de los bits de mensaje, se define como el número
de
desplazamientos
que
puede
influir
un
bit
de
mensaje en la salida codificada. Si un codificador tiene un registro de desplazamiento de M estados, la memoria del codificador es M, y se necesitan K = M + 1 desplazamientos para que un bit de mensaje entre y salga finalmente. Por lo tanto la profundidad del codificador es K.
Figura 30.- Esquema de un codificador convolucional Página 83
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
La Figura 30 muestra un codificador convolucional con n = 2 y K = 3. Por tanto, la razón del codificador es 1/2. Este codificador opera sobre el mensaje de entrada a razón de un bit cada vez. El
comportamiento
en
el
dominio
del
tiempo
de
un
codificador convolucional binario de razón 1/n se puede definir
en
términos
de
un
conjunto
de
n
respuestas
impulsivas. El codificador simple de la Figura 30 tiene una razón de 1/2. Por tanto necesitamos 2 respuestas impulsivas para
caracterizar
su
comportamiento
tiempo. La secuencia (g0
(1)
, g1
(1)
en
,..., gM
(1)
el
dominio
del
) representa la
respuesta impulsiva del sumador superior de la figura 30, y la secuencia (g0(2), g1(2),..., gM(2)) representa la respuesta impulsiva
del
sumador
inferior
de
la
Figura.
Estas
respuestas se obtienen como consecuencia de aplicar a la entrada
la
secuencia
(1,0,0,0,0,0,....),
y
observar
el
valor de la salida. Como
su
convolucional
propio actúa
nombre
indica,
realizando
la
un
codificador
convolución
de
la
secuencia mensaje de entrada con la respuesta impulsiva. Así para los dos caminos de nuestro ejemplo, obtendremos las dos secuencias siguientes: M (1) x = g l(1) mi − l l= 0
∑
i
x
(2 ) i
=
M
∑l gl =0
( 2)
mi − l
i = 0,
1, 2, . . .
i = 0,
1, 2, .. .
donde mi-l = 0 para todo l > i. Después
de
la
convolución,
las
dos
secuencias
de
salida se combinan por un multiplexor para producir la secuencia de salida expresada por
Página 84
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
{xi}={x0(1), x0(2), x1(1), x1(2), x2(1), x2(2),...} En nuestro ejemplo, las respuestas impulsivas vienen dadas por (g0(1), g1(1), g2(1)) = (1,1,1) (g0(2), g1(2), g2(2)) = (1,0,1) Si
observamos,
las
secuencias
impulsivas
se
pueden
determinar fácilmente del diagrama de la Figura 30 sin más que significar que un 1 equivale a una conexión entre el registro
de
desplazamiento
y
el
sumador,
y
un
0
se
determina por una ausencia de conexión. Si
por
ejemplo
introducimos
el
mensaje
de
entrada
siguiente: (m0, m1, m2, m3, m4) = (10011) Usando
las
ecuaciones
anteriores
obtenemos
que
la
secuencia de salida superior es (1111001), y la inferior viene dada por (1011111), por lo que la salida total del codificador viene determinada por {xi}=(11, 10, 11, 11, 01, 01, 11) Observamos que el mensaje de longitud L=5 bits produce un mensaje de salida codificado de longitud n(L+K-1) = 14 bits. Observamos también que para restaurar de nuevo el registro de desplazamiento a su estado inicial, necesitamos una
secuencia
de
finalización
de
K-1
=
2
ceros.
La
secuencia de finalización de K-1 ceros se conoce como la cola del mensaje. Dado que un codificador convolucional es una máquina de
estados
finitos
invariante
en
el
tiempo,
podemos
simplificar el cómputo aplicando la transformada adecuada. Por tanto vamos a transformar la respuesta impulsiva de
Página 85
Trabajo Final de Carrera Rafael Casañas Ávila cada
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
parte
del
codificador
por
un
polinomio
cuyos
coeficientes se representan por los respectivos elementos de la respuesta impulsiva. Por lo tanto, para la parte superior
del
ejemplo
de
la
Figura
30,
se
define
el
polinomio g(1)(D) = g0(1) + g1(1)·D + ··· + gM(1)·DM donde g0(1), g1(1),..., gM(1) son los elementos de la respuesta impulsiva de la parte superior del ejemplo. La variable D denota un operador de retardo unitario, mientras que el exponente de D define el número de unidades de tiempo que se
retarda
un
bit
respecto
al
primero.
Para
la
parte
inferior del ejemplo se obtendría una expresión similar obteniendo g(2)(D) = g0(2) + g1(2)·D + ··· + gM(2)·DM Los
polinomios
g(1)(D)
y
g(2)(D)
se
llaman
los
polinomios generadores del código. Consideremos la siguiente secuencia mensaje {m0, m1, m0,..., mL-1}, para la cual se define el siguiente polinomio de mensaje: m(D) = m0 + m1D + m2D2 +···+ mL-1DL-1 donde L es la longitud de la secuencia mensaje. De a cuerdo a
las
expresiones
vistas
anteriormente
las
sumas
de
convolución que vimos en el dominio temporal se pueden sustituir
por
multiplicación
de
polinomios,
por
lo
que
tendríamos que para los dos caminos del ejemplo: x(1)(D) = g(1)(D)·m(D) y x(2)(D) = g(2)(D)·m(D) Una vez calculado los polinomios de salida x(1)(D) y x(2)(D),
podemos
obtener
las
secuencias
de
salida
correspondientes simplemente leyendo los coeficientes de los polinomios de salida.
Página 86
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
En nuestro ejemplo, los polinomios generadores serían g(1)(D)= 1 + D + D2 g(2)(D)= 1 + D2 y nuestro mensaje ejemplo (10011) sería m(D) = 1 + D3 + D4 con
lo
que
obtendríamos
las
secuencias
de
salida
siguientes: x(1)(D)= 1 + D + D2 + D3 + D6
(1111001)
x(2)(D)= 1 + D2 + D3 + D4 + D5 + D6
(1011111)
que son los mismos mensajes de salida que obteníamos en el caso del dominio temporal, pero con mucho menos cómputo.
Página 87
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Figura 31.- Árbol para el codificador convolucional de la Figura 30 Tradicionalmente, las propiedades estructurales de un codificador
convolucional
se
han
proyectado
de
forma
gráfica usando cualquiera de estos tres métodos: árbol, trellis, o diagrama de estados. Vamos a seguir usando el
Página 88
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
ejemplo de la Figura 30 para ilustrar cada uno de estos tres tipos de representación.
Figura 32.- Trellis para el codificador convolucional de la Figura 30 En la Figura 31 podemos observar el árbol del ejemplo. Cada rama del árbol representa un símbolo de entrada, con la pareja correspondiente de salidas binarias indicadas en cada rama. Se usa por convenio para distinguir la entrada como un 0 si tomamos la rama superior, y un 1 si tomamos la rama inferior. En el diagrama de la Figura 31 observamos que el árbol se
hace
repetitivo
ramificaciones,
debido
después a
que
de
las
tres
en
nuestro
primeras
ejemplo
el
codificador tiene una memoria de M = K - 1 = 2 bits de mensaje. Por lo tanto, podemos colapsar el árbol en una nueva forma mostrada en la Figura 32, llamada trellis. El convenio utilizado para representar los datos de entrada en el trellis es el siguiente: una rama producida como una entrada 0 se representa como una línea continua, y la rama producida como una entrada 1 se representa con una línea discontinua.
El
trellis
nos
muestra
que
un
código
convolucional es una máquina de estados finitos. Un trellis contiene (L + K) niveles (numerados desde 0 hasta (L+K-1), donde L es la longitud del mensaje de entrada, y K es la profundidad del código.
Página 89
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
En la Figura 33 se ha representado la parte estable del trellis de nuestro ejemplo, en donde podemos apreciar los cuatro posibles estados de nuestro trellis (a,b,c y d).
Figura 33.- Una porción de la parte central del trellis de la Figura 32 La última forma de representación se obtiene de la Figura 33 directamente, y es la mostrada en la Figura 34, que es el diagrama de estados del código convolucional.
Figura 34.- Diagrama de estados del codificador convolucional del ejemplo
Página 90
Trabajo Final de Carrera Rafael Casañas Ávila 5.3.1.3.-
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Descodificación
de
códigos
convolucionales
de
máxima probabilidad. El Algoritmo de Viterbi La
equivalencia
entre
la
descodificación
de
máxima
probabilidad y la distancia mínima de descodificación para un canal simétrico binario ("Binary Simetric Channel" ó BSC)
implica
que
podemos
descodificar
un
código
convolucional escogiendo un camino del árbol cuya secuencia codificada difiera de la secuencia recibida en el menor número de posiciones [6]. Dado que, como hemos visto, un árbol de codificación es equivalente a un trellis, podemos limitar igualmente nuestra elección a los caminos posibles en
la
representación
trellis
del
código.
La
razón
de
utilizar el trellis en lugar del árbol es porque el número de nodos de cualquier nivel del trellis no crece conforme el número de bits de mensajes aumenta, ya que el trellis se basa en volver a estados existentes; por tanto el número de niveles
es
constante
y
de
valor
2K-1,
donde
K
es
la
profundidad del código. Consideremos de nuevo el trellis del diagrama de la Figura 32 del código convolucional del ejemplo de rate 1/2 y de profundidad 3. Observamos al nivel j=3 que hay dos caminos que entran a cada uno de los nodos del trellis. Mas aún, estos dos caminos se hacen idénticos desde este punto en
adelante.
Claramente,
un
descodificador
de
mínima
distancia debe tomar una decisión en este punto sobre cuál de los dos caminos nos debemos quedar. Una decisión similar se debe tomar en el nivel j=4, y en adelante. Esta algoritmo
secuencia de
Viterbi
de en
decisiones su
camino
es por
la el
que
hace
el
trellis.
El
algoritmo opera computando una métrica para cada posible camino del trellis. La métrica de un camino particular se define como la distancia de Hamming entre la secuencia
Página 91
Trabajo Final de Carrera Rafael Casañas Ávila codificada
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
representada
por
ese
camino
y
la
secuencia
recibida. Por tanto, para cada nodo (estado) en el trellis de
la
Figura
entrantes
al
32, nodo.
el
algoritmo
Nos
compara
quedamos
con
los
el
dos
camino
caminos con
la
métrica más baja, y los otros caminos se descartan. Este cómputo se repite para cada nivel j del trellis en el rango que va desde M hasta L, ambos inclusive. Los caminos que se retienen por el algoritmo se llaman supervivientes. Para un código convolucional de profundidad K=3, no hay más de 2K1
=4 caminos supervivientes. Si se diera el caso que dos
caminos tuvieran la misma métrica, se escoge cualquiera de los dos aleatoriamente. En resumen, el algoritmo de Viterbi es un algoritmo de descodificación de máxima probabilidad, que es óptimo para un canal con un ruido blanco gausiano. Para un mensaje de L bits, un codificador de memoria M, el algoritmo procede como sigue (asumiendo que el codificador está inicialmente en el estado de todo cero en j=0): - Paso 1: Empezando en el nivel j=M, calculamos la métrica para
cada
uno
de
los
posibles
estados
de
codificador.
Almacenamos el camino superviviente y su métrica para cada estado. - Paso 2: Incrementamos el nivel j en 1. Calculamos la métrica para todos los caminos que entran a cada estado añadiendo la métrica de las ramas entrantes a la métrica del superviviente de la unidad de tiempo previa. Para cada estado, identificamos el camino con la métrica más baja de los dos posibles en cada estado, como el superviviente del paso 2. Almacenamos el superviviente y su métrica. - Paso 3: Si el nivel j es menor que L+M, repetimos el paso 2. De lo contrario, paramos.
Página 92
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Figura 35.- Diferentes pasos aplicados al ejemplo en el algoritmo de Viterbi En la Figura 35 podemos observar un ejemplo para el cual se supone que se ha enviado la secuencia todo ceros, y la secuencia recibida es la (01 00 01 00 00 ...). Vemos que hay dos errores en la secuencia recibida debido al ruido
Página 93
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
del canal: uno en la posición 2 y otro en la 6. Veamos que este error se puede corregir aplicando el algoritmo de Viterbi. Después de aplicar el paso 1 una vez, y el paso 2 tres veces,
los
métrica
2,
supervivientes 3,
quedaríamos aplicación
3
con
y
el
del
3
que
nos
han
quedado
respectivamente.
de
menor
algoritmo,
métrica
que
este
Por
al
caso
tienen
tanto
final es
el
nos
de
la
primer
camino, que efectivamente se corresponde a la secuencia todo ceros. 5.3.1.4.- Entrelazado ("Interleaving") En la vida real no se suele producir un error en un bit puntual sino que se mucho más probable que afecten a un conjunto consecutivo de ellos. La codificación del canal que hemos visto hasta ahora es efectiva en la detección y corrección de pocos errores, pero no cuando la cantidad de información
perdida
consecutiva
es
grande.
Para
ello
necesitamos un modo de dispersar los bits consecutivos que forman un mensaje. Esta es la misión del entrelazado. 5.3.2.- Codificación del Canal en GSM Vamos
a
anteriormente,
pasar
a
ver
aplicado
al
todo
y
caso
cuanto
hemos
particular
que
visto nos
interesa: GSM. 5.3.2.1.- CRC en GSM En
el
caso
de
GSM
se
usa
el
polinomio
generador
g(D)=D3+D+1, (ver Figura 36) por lo que vamos a tener tres elementos de memoria con tres lazos de realimentación [10]. Por lo tanto obtenemos 3 bits de paridad al final del
Página 94
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
proceso. Para limpiar el registro de desplazamiento, hemos de añadir 3 bits.
C2
C1
+
C0
+
Figura 36.- Registro de desplazamiento para el CRC de GSM La lógica de funcionamiento es la misma, salvo que la longitud de los mensajes introducidos es de 50 bits, y la salida será de 3 bits, que se añaden al final de estos. 5.3.2.2.- Código convolucional en GSM
Figura 37.- Diagrama de bloques del codificador convolucional de GSM El código convolucional que GSM aplica proviene de un codificador de razón 1/2 y de profundidad K = 5, por lo que es similar al que hemos desarrollado en el ejemplo pero un poco más complejo, ya que tiene algo más de memoria (M=4) [10].
Página 95
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
En la Figura 37 se representa el diagrama de bloques del codificador convolucional de GSM. Podemos observar que como en el ejemplo anterior tenemos dos caminos, ya que el rate es de 1/2, y el multiplexor es de 2 a 1. Como M = 4, tenemos cuatro flip-flops o elementos de retardo unitarios.
Figura 38.- Trellis del código convolucional en GSM
Página 96
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
De la propia identificación gráfica del circuito de la Figura 37, podemos obtener los dos polinomios generadores que en nuestro caso son g(1)(D)= 1 + D3 + D4 g(2)(D)= 1 + D + D3 + D4 El trellis en nuestro caso es algo más complejo que en el ejemplo anterior, y tiene la forma representada en la Figura 38. Como nuestro código tiene memoria 4, tenemos ahora 24 estados. El convenio de líneas es el mismo que antes. En la Figura 38 se representa la parte estable del trellis de GSM.
Figura 39.- Parte estable del trellis de GSM
Página 97
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
A partir del trellis representado en la figura 39 se puede obtener fácilmente el diagrama de estados. 5.3.2.3.- "Interleaving" en GSM Para
minimizar
el
efecto
de
los
desvanecimientos
súbitos de los datos recibidos, el total de 456 bits bits codificados que se codifican cada 20 ms en una trama de voz o de control, se dividen en 8 sub-bloques de 57 bits. Estos 8
sub-bloques
que
forman
una
trama
simple
de
voz,
se
esparcen a través de 8 slots TCH consecutivos ( es decir, 8 tramas
consecutivas
pierde
una
ráfaga
desvanecimientos,
para
un
TS
debido
a
las
la
disponemos
de
secuencia
correcta
codificación
suficientes
bits
siempre
y
específico)
[1].
interferencias del
los
asegura
que
descodificar
la
cuando
o
se
a
canal
para
Si
tengamos
una
descodificación como por ejemplo el algoritmo de Viterbi. Cada slot TCH, como vimos, lleva dos bloque de datos de 57 bits de dos segmentos de voz (o de control) diferentes (cada uno de los segmentos son los bloques de 456 bits).
Número de trama
i+0 0a
i+1
i+2
i+3
i+4
4b 1a 5b 2a 6b 3a 7b 4a 0b
114 bi ts
i+5
i+6
i+7
5a 1b 6a 2b 7a 3b
114 bi ts
Figura 40.- Interleaving en GSM La Figura 40 muestra exactamente como se produce el "interleaving" en las tramas dentro de los slots. Hemos de significar que el TS 0 contiene 57 bits de datos del subbloque
0
de
la
n-ésima
trama
del
codificador
de
voz
(denominada como "a" en la figura) y 57 bits de datos de el
Página 98
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
sub-bloque 4 de la (n-1)-ésima trama del codificador de voz (denominada como "b" en la figura). 5.4.- Modulación Digital en GSM El esquema de modulación usado en GSM es 0.3 GMSK, donde 0.3 describe el ancho de banda del filtro Gausiano con relación al bit rate de la señal (BT=0.3). GMSK es un tipo especial de modulación FM. Los unos y ceros binarios se representan en GSM por desplazamientos en frecuencia de ±67.708 KHz. La velocidad de datos en GSM es de 270.833333 kbps, que es exactamente cuatro veces el desplazamiento en frecuencia. Esto minimiza el ancho de banda ocupado por el espectro de modulación y por tanto mejora la capacidad del canal. La señal MSK modulada se pasa a través de un filtro Gausiano para atenuar las variaciones rápidas de frecuencia que
de
otra
forma
esparcirían
energía
en
los
canales
adyacentes. 5.4.1.- Modulación MSK ("Minimum Shift Keying") MSK
es
un
tipo
especial
de
FSK
("Frecuency
Shift
Keying"), con fase continua y un índice de modulación de 0.5
[1].
El
índice
de
modulación
de
una
señal
FSK
es
similar al de FM, y se define por kFSK= (2ΔF)/Rb, donde 2 ΔF es el desplazamiento en frecuencia de pico a pico y Rb es el bit rate. Un índice de modulación de 0.5 se corresponde con el mínimo espacio en frecuencia que permite dos señales FSK
para
ser
ortogonales
coherentes,
y
el
nombre
MSK
implica la mínima separación en frecuencia que permite una detección ortogonal. Dos señales FSK vH(t) y vL(t) se dice que son ortogonales si T
∫ v H (t )v L (t )dt 0
Página 99
=0
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
MSK es una modulación espectralmente eficiente. Posee propiedades
como
envolvente
constante,
eficiencia
espectral, buena respuesta ante los errores de bits, y capacidad de autosincronización. Una señal MSK genérica se puede expresar como
S donde
⎛
t = m (t ) cos⎜
( )
MSK
πt⎞
⎟ cos(2π ⎝ 2Tb ⎠
I
⎛
f t ) + m (t ) sen⎜ c
πt⎞
⎟ sen(2π ⎝ 2Tb ⎠
Q
f t) c
m (t ) y mQ (t ) son los bits pares e impares de la I
cadena de datos bipolares que tienen valores de +1 o de -1 y que alimentan los bloques en fase y en cuadratura del modulador. La
forma
de
onda
MSK
se
puede
ver
como
un
tipo
especial de FSK de fase continua y por tanto la ecuación anterior
se
puede
reescribir
usando
las
propiedades
trigonométricas como
s
MSK
⎡
πt
⎣
2
= cos⎢2π f c t − mI (t )mQ (t )
T
⎤
+ φk ⎥
b
⎦
donde φk es 0 ó π dependiendo de si mI(t) es 1 ó -1. De la ecuación anterior se puede deducir que MSK tiene amplitud constante.
La
continuidad
de
fase
en
los
periodos
de
transición de bits se asegura escogiendo la frecuencia de la portadora como un múltiplo entero de un cuarto del bit rate. Con un estudio más profundo, se puede ver de la ecuación
anterior
que
la
fase
de
la
señal
MSK
varía
linealmente durante el transcurso de cada periodo de bit. La típico
Figura MSK.
41
muestra
Multiplicando
un
modulador
una
señal
y
demodulador
portadora
por
cos[πt/2T] se producen dos señales coherentes en fase a las frecuencias fc+1/4T y a fc-1/4T. Estas dos señales FSK se separan
usando
dos
filtros
paso
banda
estrechos
y
se
combinan apropiadamente para formar las dos señales en fase y
en
cuadratura
x(t)
e
y(t)
respectivamente.
Estas
portadoras se multiplican por las cadenas de bits impares y
Página 100
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
pares, mI(t) y mQ(t) para producir la señal modulada MSK sMSK(t).
Figura 41.- Diagrama de bloques de un modulador y demodulador MSK En el receptor (demodulador), la señal recibida sMSK(t) (en ausencia de ruido e interferencias) se multiplica por las portadoras respectivas en fase y en cuadratura. La salida
de
los
multiplicadores
se
integra
durante
dos
periodos de bit y se introduce en un circuito de decisión al final de estos dos periodos. Basado en el nivel de la señal
a
la
salida
del
integrador,
el
dispositivo
de
decisión decide si la señal es 1 ó 0. Las cadenas de datos de salida se corresponden con las señales mI(t) y mQ(t), que se combinan para obtener la señal demodulada.
Página 101
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
5.4.2.- Modulación GMSK ("Gaussian Minimum Shift Keying") GMSK es un esquema de modulación binaria simple que se puede ver como derivado de MSK [1]. En GMSK, los lóbulos laterales del espectro de una señal MSK se reducen pasando los datos NRZ modulantes a través de un filtro Gausiano de premodulación. El filtro gausiano aplana la trayectoria de fase
de
la
variaciones
señal de
la
MSK
y
por
lo
frecuencia
tanto,
estabiliza
instantánea
a
través
las del
tiempo. Esto tiene el efecto de reducir considerablemente los
niveles
de
los
lóbulos
laterales
en
el
espectro
transmitido. El filtrado convierte la señal (donde cada símbolo en banda base ocupa un periodo de tiempo T) en una respuesta donde cada símbolo ocupa varios periodos. Sin embargo, dado que esta conformación de pulsos no cambia el modelo de la trayectoria
de
la
fase,
GMSK
se
puede
detectar
coherentemente como una señal MSK, o no coherentemente como una señal simple FSK. En la práctica, GMSK es muy atractiva por su excelente eficiencia de potencia y espectral. El filtro de premodulación, por tanto, introduce interferencia intersimbólica (ISI) en la señal transmitida, y se puede mostrar que la degradación no es grave si el parámetro BT del filtro es mayor de 0.5. Debido que en GSM tenemos que el BT es 0.3, vamos a tener algunos problemas de ISI y es por ello por lo que en GSM la señal no es totalmente de envolvente constante como se mostrará en las simulaciones. El
filtro
gausiano
de
premodulación
respuesta impulsiva dada por
hG (t ) =
π α
⎛
exp⎜ −
⎝
π 2 2⎞ t ⎟ α2 ⎠
y su respuesta en frecuencia viene dada por
Página 102
tiene
una
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
HG ( f ) = exp(−α f 2
2
)
Figura 42.- Respuesta impulsiva de un filtro gausiano en función de α El parámetro α está relacionado con el ancho de banda del filtro B, por la siguiente expresión
α=
2 ln 2
B
y el filtro GMSK se puede definir completamente por B y por la duración de un símbolo en banda base T. También se suele definir GMSK por su producto BT. En la Figura 42 podemos ver
cómo
varía
la
forma
de
la
respuesta
impulsiva
del
filtro variando el parámetro α (es decir, B). La Figura 43 nos muestra la PSD simulada de una señal GMSK para varios valores de BT [9]. Se muestra también la PSD de una señal MSK, que es equivalente a GMSK con BT infinito. En el gráfico se ve claramente que conforme se reduce BT, los niveles de los lóbulos laterales se atenúan rápidamente. Por ejemplo, para BT=0.5, el pico del segundo lóbulo está más de 30 dB por debajo del principal, mientras que para MSK el segundo lóbulo está sólo 20 dB por debajo del principal. Sin embargo, la reducción de BT incrementa
Página 103
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
la ISI, y por lo tanto se incremente el bit-error "rate" (BER). Pero, los canales de radio inducen un irreparable bit-error rate debido a la velocidad del móvil, de forma que debido a que el BER introducido en una señal GMSK es menor
que
el
introducido
por
el
canal,
no
hay
ningún
perjuicio en usar GMSK.
Figura 42.- Densidad de Potencia Espectral de una señal GMSK para varios valores de BT La manera más simple de generar una señal GMSK es pasar una cadena de mensajes NRZ a través de un filtro gausiano
paso
baja
como
los
descritos
anteriormente,
seguido de un modulador de FM. Esta técnica de modulación se muestra en la Figura 43 y se usa actualmente en una gran cantidad de implementaciones analógicas y digitales para el CDPD
norteamericano
así
como
para
GSM
(aunque
la
implementación software, más sencilla, que utilizaremos en las simulaciones es ligeramente diferente y ya se explicará en su momento).
Página 104
Trabajo Final de Carrera Rafael Casañas Ávila
Datos NRZ
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Transmisor de FM
Filtro Gausiano Paso Baja
Salida GMSK
Figura 43.- Diagrama de bloques de un transmisor GMSK usando generación directa de FM El esquema de modulación que vamos a seguir nosotros en las simulaciones, va a ser el de modular primero la señal
en
MSK,
y
posteriormente
pasarla
por
un
filtro
gausiano de las características que vimos en su momento. Por lo tanto lo que hemos de hacer primero es realizar la modulación
MSK.
Para
ello
vamos
a
explicar
primero
el
proceso que vamos a hacer, antes de exponer el programa que realiza eso mismo en Matlab. Vamos a utilizar los pasos mostrados en la Figura 44 para ver cómo se puede conseguir una señal MSK. Las
formas
de
onda
de
la
Figura
44
están
todas
alineadas en fase. Las pequeñas escalas están para ayudar a comprender mejor las relaciones de fase entre las formas de onda. Empezamos con una cadena de datos, que modulará la portadora según el esquema MSK. Supongamos una cadena de 10 bits de datos, que van a ser 1101011000. Ahora vamos a dividir esta cadena de datos en dos señales: una formada por los bits impares y otra formada por los bits pares. Vamos a mantener el valor de cada una de estas dos señales durante dos instantes de tiempo. Si aplicáramos estas dos señales a un modulador en cuadratura tendríamos una señal OQPSK
(muy
utilizada
también
en
los
sistemas
celulares
digitales). En el caso de GSM, como el bit rate es de 270.833 kbps, entonces el bit rate de las señales impar y par será de la mitad, es decir de 135.4165 kbps.
Página 105
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Figura 44.- Generación de una señal MSK Las dos siguientes formas que onda que podemos ver en la Figura 44 son las señales portadoras de frecuencia alta y baja, respectivamente. Dado que MSK es una forma de FSK, necesitamos
dos
versiones
de
nuestra
portadora
con
dos
frecuencias diferentes. Para crear la señal MSK, debemos empezar con el bit número 2, y debemos fijarnos en la tabla 5.3. Para ese instante de tiempo, en el bit número 2, debemos fijarnos en el valor tanto de los bits impares como de los pares, y después hemos de mirar a la tabla 5.2 y hacer lo que nos digan las reglas de decisión. La señal de salida MSK será la que se nos indique teniendo en cuenta si la señal portadora tanto de frecuencia alta como de baja debe estar en fase o en contrafase. Así se obtiene la señal que se indica al final de la figura 46, que se la señal MSK.
Página 106
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Entrada Digital
Salida MSK
Bit Impar
Bit Par
Frecuencia
Fase
1
1
Alta
0
0
1
Baja
π
1
0
Baja
0
0
0
Alta
π
Tabla 5.3
Para
conseguir
una
señal
GMSK
de
una
señal
MSK,
necesitamos tan solo filtrar la señal MSK con un filtro gausiano de un ancho de banda definido por su BT=0.3, lo cual nos indica que el ancho de banda B debe ser de 81.3 KHz aproximadamente dado que T=1/270833. Las señales GMSK se pueden detectar usando detectores ortogonales coherentes como se muestran en la Figura 44 (parte superior), o con detectores no coherentes como los discriminadores portadora
se
normales realiza
de
FM.
algunas
La
recuperación
veces
usando
el
de
la
método
propuesto por de Buda donde la suma de las dos componentes en frecuencia a la salida del doblador de frecuencia se divide por cuatro. El método de de Buda es equivalente al de un PLL con un doblador de frecuencia. Este tipo de demodulador se puede implementar fácilmente usando lógica digital
como
inferior).
se
Los
muestra dos
en
la
flip-flops
Figura tipo
45
D
(en
actúan
la
parte
como
un
demodulador multiplicativo en cuadratura y las puertas XOR actúan como multiplicadores en banda base. Las portadoras de referencia mutuamente ortogonales se generan usando dos flip-flops,
y
controlado
por
la
frecuencia
tensión)
se
central elige
del
como
VCO
cuatro
(Oscilador veces
la
frecuencia central de la portadora. Un método no óptimo
Página 107
Trabajo Final de Carrera Rafael Casañas Ávila pero
efectivo
Estudio y Simulación con Matlab de la Interfaz de radio de GSM de
detectar
señales
GMSK
es
simplemente
muestrear la salida de un demodulador de FM.
Figura 45.- Diagrama de bloques de un receptor GMSK (parte superior) y de un circuito digital para la demodulación de señales GMSK (parte inferior)
Página 108
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
6.- Simulaciones con Matlab
6.1.- Introducción A
la
hora de realizar las simulaciones en Matlab,
vamos a seguir aproximadamente el mismo esquema que las operaciones de procesado de señal que se realizan en GSM, y que hemos podido conocer en la sección anterior. Vamos a suponer que la simulación es para un canal de tráfico de voz a velocidad completa (TCH/FS). Por lo tanto vamos a tener en primer lugar que hablar de la codificación de la fuente. 6.2.- Codificación de la Fuente La posibilidad de utilizar programas en lenguaje C en Matlab nos permite llevar a cabo la codificación de la fuente mediante un programa en lenguaje C que sigue las especificaciones
ETSI
GSM
06.01.
de
codificación
de
la
señal de voz para un canal TCH/FS. El programa utilizado es un
programa
de
dominio
público.
Este
programa,
TOAST, tiene varios parámetros de entrada.
llamado
Con el programa
TOAST, debemos de introducir un fichero de muestras de voz. El
fichero
de
diferentes,
y
voz cada
introducido uno
de
ellos
puede se
tener
formatos
especifica
con
un
parámetro de entrada. Estos formatos son los siguientes: -
Fichero
muestreado
con
compresión
a
KHz.
8
Se
de
datos
especifica
ley con
µ el
de
8
bits,
parámetro
de
entrada -u. -
Fichero
muestreado
con
compresión
a
KHz.
8
Se
de
datos
especifica
entrada -a.
Página 109
ley con
A el
de
8
bits,
parámetro
de
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
- Fichero de audio tipo SUN. Lleva compresión de datos ley µ con cabecera de datos. Se especifica con el parámetro de entrada -s. - Fichero de audio lineal con datos de 16 bits con signo muestreados a 8 KHz. Se especifica con el parámetro de entrada -l En el Apéndice 1 podemos obtener mayor información sobre el programa TOAST. En el presente trabajo se van a trabajar con ficheros de audio tipo SUN (ó .au). A modo de ejemplo, en la memoria se muestran los resultados obtenidos con una señal de voz que representa el sonido de la palabra "cuatro", y que podemos ver en la Figura 46.
Figura 46.- Señal de Entrada. Representa la palabra "cuatro".
Página 110
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
A continuación vamos a pasar a comprimir el fichero de muestras de voz de nuestro ejemplo cuatro.au (pero sin extensión. Ver Apéndice 1). TOAST -s cuatro La
primera
rutina
a
utilizar
de
MATLAB,
nos
va
a
servir para leer los ficheros generados por el programa de codificación. Ésta es la rutina abrir.m que podemos ver en el Apéndice 2, Programa 1. Por lo tanto si ejecutamos en Matlab: [f,F]=abrir('cuatro.gsm'); en F vamos a tener los datos del fichero cuatro.gsm en caracteres
ASCII,
y
en
f
los
datos
pasados
a
binario,
gracias a la rutina str2bin.m (Apéndice 2, Programa 2). En nuestro ejemplo, la cadena f binaria tiene una longitud de 6600 bits, agrupados en bloques de 264 bits, lo que nos hace un total de 25 tramas. Lo que hemos de hacer a continuación es eliminar los cuatro primeros bits de cada trama que hemos visto que no tienen utilidad, y agruparlos en tramas de 260 bits. Esto lo vamos a realizar en la matriz T, mediante el programa tramas.m (Apéndice 2, Programa 3). Sabemos que en nuestro caso N_tramas es 25). En T ya tenemos las tramas agrupadas en bloques de 260 bits y dispuestas para trabajar con ellas. Las dimensiones de T para nuestro ejemplo son de 25x260. Pero el problema siguiente que se nos presenta es que debemos
de
ordenar
los
bits
Página 111
siguiendo
del
orden
de
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
importancia de los bits tal y como se especifica en la tabla 5.1. Para ello vamos a usar la rutina de Matlab clasif.m (Apéndice 2, Programa 4). Por lo tanto con esta función lo que vamos a hacer es clasificar la matriz T en una nueva matriz d, siguiendo el orden
de
importancia
que
se
mencionó
con
anterioridad.
Debemos de ejecutar la siguiente línea en Matlab: d=clasif(T,N_tramas); 6.3.- Codificación del canal El siguiente paso consiste en aplicar la codificación del canal. Esto supone una serie de operaciones sobre la cadena de bits ordenados. La primera operación consiste en calcular
los
tres
bits
de
paridad
(código
CRC)
a
los
primeros 50 bits de cada trama. Esta operación la realiza la función crc.m (Ver Apéndice 2, Programa 5). Como se puede observar p2, p1 y p0 son los bits de paridad que hemos de añadir a los 50 primeros bits. Por lo tanto hemosd de ejecutar el siguiente comando en Matlab: [p2,p1,p0]=crc(d,N_tramas,N); Antes
de
introducir
los
bits
en
el
codificador
convolucional, hemos de reordenar los bits de la clase Ia, Ib y de paridad tal y como se indica en la función reord.m (Ver
apéndice
2,
Programa
6),
según
se
recoge
en
la
recomendación ETSI 05.03. Lo que hace esta rutina es ordenar los bits de la clase Ia y Ib en dos bloques e introducir los bits de paridad en medio de ambos bloques. Finalmente se añaden 4 bits
de
cola
todo
ceros
("tail
Página 112
bits")
para
limpiar
el
Trabajo Final de Carrera Rafael Casañas Ávila registro
de
Estudio y Simulación con Matlab de la Interfaz de radio de GSM desplazamiento
del
código
convolucional.
El
comando a ejecutar es el siguiente: u=reord(d,p2,p1,p0,N_tramas,N); El resultado es el vector "u", de 189 bits por cada trama
que
vamos
a
introducir
en
el
codificador
convolucional de "rate" 1/2 y de profundidad 5. Esto lo realizamos mediante la función convol.m (Ver Apéndice 2, Programa
7)
que
además
de
realizar
la
codificación
convolucional, añade los 78 bits finales de la clase II, con
menor
importancia,
que
no
llevan
ningún
tipo
de
protección. El resultado es la matriz c, de 456 bits por cada trama lo cual hace un "bit rate" de 22.8 kbps. Lo que hemos hecho
es
incrementar
redundancia
para
la
cantidad
evitar
los
de
información,
errores
que
nos
o
la
pueda
introducir el canal. El comando que introducimos ahora es: c=convol(u,d,N_tramas); El
siguiente
"interleaving"
de
paso los
que
bits
hemos que
se
de
realizar
realiza
es
el
mediante
el
programa intrlvng.m (Apéndice 2, Programa 8). El resultado de esta función es el vector "e", en donde tenemos ya los diferentes grupos de 57 bits separados por dos bits, que son los "stealing bits" (que en nuestro caso están a cero) que hemos de introducir en una ráfaga normal de GSM. El comando que hemos de ejecutar por tanto, será: e=intrlvng(c,N_tramas);
Página 113
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Antes de realizar la modulación, necesitamos conformar las ráfagas de GSM, que en nuestro caso es una ráfaga normal. Como vimos, este tipo de ráfagas llevaba 3 bits de cola al principio y al final, dos bloques de 57 bits de datos,
y
26
bits
correspondientes
a
una
secuencia
de
entrenamiento, encargada de ajustar los filtros adaptativos en los receptores. Vamos a suponer que nosotros tenemos asignado un TCH y que vamos a transmitir en el slot de tiempo 0 (TS 0), por lo que los otros 7 slots permanecen sin utilizar (se supone que llevan datos de otras fuentes). También tenemos en cuenta que para un TCH, dependiendo de en qué slot transmitamos, vamos a tener una secuencia de entrenamiento concreta. La función que realizaría esto es burst.m (Apéndice 2, Programa 9). El comando que deberíamos utilizar sería: B=burst(e,N_tramas); 6.4.- Modulación Digital El siguiente paso a realizar es el de modular estas secuencias de bits ya conformadas como ráfagas normales, a una velocidad de 270.833333 kbps. El esquema de modulación a utilizar es el que vimos en teoría
de
realizar
primero
la
modulación
MSK
y
luego
aplicar un filtrado gausiano paso baja. La función mskmod.m (Apéndice 2, Programa 10), realiza la
modulación
MSK
para
todas
las
tramas
que
teníamos
conformadas en ráfagas normales (matriz B) según el proceso que se vio en teoría. El comando a ejecutar sería en este caso:
Página 114
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Vmsk=mskmod(B,N_tramas); Si
en
lugar
de
introducir
ya
las
tramas
GSM
introducimos el mismo vector de prueba que se describió en teoría, se obtiene la señal que se muestra en al Figura 47. La señal tiene una resolución de 100 puntos por período, y podemos observar que es exactamente la misma señal que hemos
representado
anteriormente,
por
lo
que
nuestro
modulador MSK funciona correctamente. Si ahora filtramos esta señal con el filtro gausiano, (en realidad lo que hacemos
es
la
convolución
temporal
de
la
respuesta
impulsiva del filtro, con la señal MSK), obtenemos la señal mostrada en la Figura 48, que como podemos apreciar, se ha obtenido para diversos valores de BT. En azul aparece para BT=1, en rojo para BT=0.5, y en amarillo para BT=0.3. Como ya se vio cuando estudiamos el filtrado gausiano, se llegó a la conclusión de que la señal GSM tenía una distorsión bastante grande, como podemos apreciar en la Figura 48. Además
apreciamos
que
esta
distorsión
crece
bastante
conforme disminuimos el producto BT (es decir, el ancho de banda del filtro).
Figura 47.- Ejemplo modulación MSK Página 115
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Figura 48.- Ejemplo señal GMSK para varios valores de BT
1
2
Figura 49.- PSD de una ráfaga normal MSK: 1, MSK; 2, GMSK.
Página 116
Trabajo Final de Carrera Rafael Casañas Ávila En
la
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Figura
49
hemos
representado
la
PSD
de
una
ráfaga normal modulada en MSK y modulada en GMSK. Podemos observar como la señal a frecuencias bajas conserva su espectro,
pero
a
medida
que
la
frecuencia
aumenta,
el
espectro se ve atenuado por la acción del filtro gausiano, presentando
por
ejemplo
a
una
frecuencia
de
2
MHz
una
atenuación de la señal GMSK respecto de la señal MSK de 25 dB.
El programa en Matlab que realiza la modulación GMSK es básicamente el mismo que el que realiza la modulación MSK, sólo que al final se realiza el filtrado de la señal MSK, con un filtro gausiano tal y como se explicó. Esta función es la función gmskmod.m (Apéndice 2, Programa 11).
Una vez que hemos realizado la modulación, deberíamos realizar ahora la modulación en radiofrecuencia en la banda de 900 MHz, pero eso no es viable debido a que nosotros necesitamos
tener
al
menos
unas
20
muestras
por
cada
periodo de la señal. Si nuestra frecuencia es de 900 MHz necesitaremos
unas
18000
megamuestras
por
segundo.
La
duración de una ráfaga normal en GSM es de 576.92 µs por lo que
necesitaríamos
10.385
millones
de
muestras
para
representar una trama de GSM. Matlab utiliza para esta resolución
8
bytes
por
cada
muestra
por
lo
que
necesitaríamos un tamaño de unos 80 Mbytes para representar una ráfaga normal de GSM, todo ello sin contar el tiempo que se tardaría en realizar todo este cómputo. La función que implementa en Matlab esta operación, es la función dsblc.m, que tiene los parámetros siguientes:
Vgmskrf=dsblc(Vgmsk,mi,fc,fs);
Página 117
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
mi es el índice de modulación; fc es la frecuencia de la portadora que en nuestro caso debería ser de unos 900 MHz; fs es la frecuencia de muestro que debería ser unas 20 veces mayor que la frecuencia de la portadora. Con esta función realizamos una modulación en doble banda lateral con
portadora.
Si
usáramos
el
comando
dsbsc
sería
con
portadora suprimida. Lo único que tenemos que tener en cuenta y que debemos de añadir a la señal modulante es el ruido que se introducía en RF. Por lo tanto vamos a suponer que en RF se añade un ruido blanco gausiano. Con la función setsnr.m podemos añadir un ruido blanco gausiano aditivo con
una
SNR
queramos,
("Signal
definido
to por
Noise
Ratio")
que
nosotros
el
comando
de
Matlab
n=sprandn(Vgmsk); Por lo tanto el comando que deberíamos añadir después de el anterior sería:
Vgmsk2=setsnr(Vgmsk,n,snr); Le hemos añadido un ruido con una SNR especificada en la variable snr, que hemos de introducir al ejecutar el programa general como uno de los parámetros. Si suponemos para nuestro ejemplo una SNR de 20 dB, tendríamos que la señal presentaría la forma de onda que se muestra en la Figura 50.
Página 118
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Figura 50.- Señal GMSK con ruido blanco
Si observamos ahora la PSD de esta nueva señal con ruido tenemos la Figura 51.
Figura 51.- PSD señal GMSK con ruido blanco y sin él
Página 119
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Podemos observar que se ha representado también la señal
original
sin
ruido,
y
se
observa
que
a
bajas
frecuencias no se aprecia el ruido, pero que luego éste se hace constante con un valor de unos -25 dB.
6.5.- Demodulación y Descodificación Vamos
a
pasar
ahora
a
hablar
del
proceso
de
demodulación y descodificación. En primer lugar se analiza la demodulación. Primero hacemos un estudio para una señal MSK con ruido blanco gausiano y luego haremos una extensión para la señal GMSK. El demodulador empleado se basa en el esquema representado en la Figura 41, en el cual se va a integrar la señal durante un periodo y se hace una primera decisión. Luego, si es necesario, se va a realizar una segunda integración durante medio periodo, y se realiza una segunda decisión, reconstruyendo así las señales impar y par de las que se partió para realizar la modulación MSK. La función que lleva a cabo la demodulación es mskdemod.m (Apéndice 2, Programa 12). Esta función lleva a cabo una
demodulación ráfaga a
ráfaga. Dado que en la matriz B tenemos todas las ráfagas a transmitir,
deberíamos
ejecutarlo
ráfaga
a
ráfaga.
En
nuestro caso, y a modo de ejemplo, la primera ráfaga se obtiene ejecutando el siguiente comando: B2=mskdemod(B(1,:),Vmsk); Si comparamos B2(1,:) con B(1,:) podemos observar que se obtiene el mismo vector por lo que con esta SNR no se producen errores en la transmisión en MSK.
Página 120
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Para el caso de GMSK se actuaría igual, sólo que los criterios de decisión en el demodulador cambian. La función de demodulación GMSK sería la función gmskdem.m (Apéndice 2, Programa 13). En
este
introducir
programa,
la
señal
se
MSK
puede y
lo
observar primero
que
que
hemos
de
hacemos
es
filtrarla para convertirla en GMSK (en lugar de usar el comando mskmod.m, introducimos directamente la matriz B). También podemos apreciar cómo se han cambiado los criterios de decisión a la hora de descodificar. Una vez que hemos mostrado el programa, el comando para demodular
una ráfaga
sería el siguiente: B2(j,:)=gmskdem(B(j,:),Vmsk(j,:)); siendo j el índice de cálculo que puede variar desde 1 hasta
el
valor
de
ráfaga
que
queramos
demodular.
Si
demodulamos cualquier ráfaga vemos que no se produce ningún error incluso si se añade un ruido blanco de 20 dB de SNR. Una vez que tenemos demoduladas todas las ráfagas lo que debemos de hacer es reordenarlas y tomar los 2 bloques de 57 bits que se transmiten en cada ráfaga. En realidad en el receptor, se analizarían las secuencias recibidas de entrenamiento, que ya son conocidas y se vería el valor que deben de tomar los filtros adaptativos del receptor, para aprovechar al máximo la potencia, y ver los errores que produce
el
canal.
El
programa
que
reordena
todas
las
ráfagas es el llamado burst2.m (Apéndice 2, Programa 14). En realidad lo único que hacemos con esta función, es tomar los bloques de bits de datos de todas las tramas pertenecientes al TS 0. El comando que deberíamos ejecutar para realizar la reordenadión de bits sería:
Página 121
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
e2=burst2(B2,N_tramas); Después debemos de deshacer el interleaving que se realizó con anterioridad. Esto lo hacemos con la función de Matlab deshacer.m (Apéndice 2, Programa 15) El comando que deshace el interleaving es: c2=deshacer(e2,N_tramas); Una vez que ya tenemos los bloques de 456 bits debemos de
aplicar
el
descodificador
convolucional
a
los
378
primeros bits. Para ello hemos implementado un algoritmo que
realice
el
algoritmo
de
descodificación
de
máxima
probabilidad de Viterbi. Hemos implementado directamente el algoritmo tal y como se explicó teóricamente, en la función viterbi.m (Apéndice 2, Programa 16). Esta
función,
además
de
realizar
el
algoritmo
de
descodificación de Viterbi, se realiza una comprobación del código de paridad CRC. Lo hemos hecho comparándolo con lo que se transmitió, y si no hay error, hemos de obtener los tres bits a cero. Pero vamos a ver que si introducimos la secuencia todo ceros y cambiamos algunos bits, como se hizo en el ejemplo, el algoritmo es capaz de corregir errores. Hemos modificado el programa para poder meter un vector cualquiera, por ejemplo el 01 00 01 00 00 (el mismo que se utilizó en el ejemplo
explicado
códigos
convolucionales),
(recordemos
que
en el
teoría rate
cuando
se
la
salida
es:
es
de
1/2).
explicaron 0
Sin
0
0
los 0
embargo
0 si
introducimos el vector 11 00 01 00 00 la salida es 1 1 0 1
Página 122
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
0 que como vemos ya no es capaz de corregir (tenemos tres errores). Si
se
produce
algún
error
hemos
de
usar
la
recomendación ETSI GSM 06.11, que indica cómo proceder en caso de error. Si se produce un primer errror hemos de utilizar los mismos parámetros que en la ventana anterior. Si se produce un segundo error, hemos de llevar a cabo un proceso de "mouting". El comando que debemos utilizar en Matlab es: [u2,d2,p]=viterbi(c2,N_tramas,u); Entre las variables que devuelve esta función, en p vamos a obtener los datos correspondientes al chequeo de paridad que si no hay error debe ser todo ceros. En d2 obtenemos los datos ordenados por orden de importancia ya descodificados. Hemos de recordar que los datos los tenemos ordenados por orden de importancia por lo que hemos de volver a ordenarlos tal y como dice el estándar para que puedan
ser
entendidos
descodificación
de
la
de voz.
nuevo El
por
programa
el en
programa Matlab
de que
realiza de nuevo esta ordenación es el llamado declasif.m (Apéndice 2, Programa 17). El
comando
que hemos de utilizar para deshacer la
ordenación que habíamos realizado sería: T2=declasif(d2,N_tramas); Una vez ordenados podemos se guardan en un fichero con extensión .gsm que es el que tenemos que pasar al programa de
codificación.
Por
lo
tanto
debemos
de
utilizar
la
función guardar.m (Apéndice 2, Programa 18) para finalizar el proceso.
Página 123
Trabajo Final de Carrera Rafael Casañas Ávila En
el
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Apéndice 2, Programa 19 tenemos el programa
general gsm.m que realiza todos los pasos que hemos ido introduciendo, y al cual le hemos de dar los ficheros de entrada y salida, y la SNR que queramos en cada caso. Así lo guardaríamos en formato .gsm, pero si lo que queremos es volver a tener un fichero formato .au, debemos volver a usar de nuevo el programa de codificación de la fuente
con
descodificar
el (Ver
modificador Apéndice
-d 1).
que El
se
utiliza
comando
para
completo
a
utilizar sería: TOAST -ds fichero 6.6.- Resultados de las Simulaciones Una vez que tenemos el fichero de muestar de voz tipo .au lo podemos leer desde Matlab con el comando auread. Una vez que lo hemos leído se puede incluso escuchar con el comando de Matlab sound y se puede representar tal y como se ve en la Figura 52.
Página 124
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
Figura 52.- Señal recibida en el dominio del tiempo A
esta
SNR
podemos
ver
que
ambas
señales
son
parecidas. No obstante esto se observa mejor en la Figura 53 donde se muestran los espectros de ambas señales.
Figura 53.- Espectros de las señales de audio transmitidas y recibidas Página 125
Trabajo Final de Carrera Rafael Casañas Ávila En
rojo
descodificado
Estudio y Simulación con Matlab de la Interfaz de radio de GSM tenemos y
representada
reconstruido,
y
en
la
señal
que
amarillo
hemos
tenemos
el
espectro de la señal original. Podemos ver que a grandes rasgos se parecen bastante. En cuanto al sonido, el de la señal
que
parecido
y
hemos
recibido
calidad
es
es
un
bastante
poco
metálico
bueno.
En
la
pero
su
Figura
54
podemos apreciar un segmento de voz de 20 ms de las dos señales. Podemos apreciar que la señal amarilla (la que hemos recibido) no sigue las variaciones bruscas de la señal
original,
debido
a
que
la
sigue
mejor
para
frecuencias bajas, mientras que cuando la señal varía más lentamente, su parecido es bastante bueno. Esto es debido al modelo de producción de voz utilizado, que trata de asemejarse
a
la
señal
original
en
las
partes
donde
se
encuentra la mayor potencia de la señal de voz, y esto es a las frecuencias más bajas.
Figura 54.- Señales recibidas en el dominio del tiempo Página 126
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
III.- Resumen y Conclusiones Para finalizar la realización de este trabajo, vamos de realizar un breve resumen general que nos ofrezca una visión global de lo que ha sido el trabajo. En
primer
lugar
hemos
de
significar
que
con
el
presente trabajo se pretende conocer mejor el estándar de comunicaciones móviles GSM, en particular de su interfaz de radio. Hemos conocido aspectos tales como la codificación de la fuente, en la que se vio los algoritmos de compresión de voz utilizados en GSM, la codificación del canal, donde se profundizó en los diferentes códigos aplicados a las tramas de voz codificadas (CRCs y códigos convolucionales), la modulación digital GMSK, etc... Además
de
estos
aspectos,
hemos
conocido
la
organización interna de GSM a nivel de subsistemas tal y como se explica en las especificaciones. También se han visto las características del canal de radio y en ellas se han podido conocer sus parámetros fundamentales así de las interferencias y desvanecimientos que pueden aparecer en las transmisiones. En las simulaciones se han podido apreciar mejor todos los aspectos comentados con anterioridad, pudiendo conocer mejor
la
conformación
modulación
y
de
demodulación
las
tramas,
digitales,
y
los
esquemas
de
los
procesos
de
aplicación de la codificación del canal, tanto los códigos cíclicos como los convolucionales. Se ha podido apreciar cómo
afecta
limitada
el
ruido
inmunidad
a
las
frente
a
ráfagas él.
transmitidas,
También
hemos
y
su
podido
apreciar físicamente el proceso completo con un ejemplo práctico de transmisión de una señal de voz y hemos podido compararla con la señal original de voz, pudiendo apreciar
Página 127
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
las diferencias entre ambas señales, y la excelente calidad que da GSM, junto con el mejor aprovechamiento del espectro de frecuencias. En lector
definitiva, se
con
introduzca
en
este
trabajo
los
esperamos
sistemas
de
que
el
comunicación
celulares y en particular pueda conocer una pequeña parte de lo que es el estándar GSM. Este trabajo queda abierto para poder ser continuado, profundizando
en
otros
subsistemas
estándar GSM.
Página 128
o
interfaces
del
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
IV.- Bibliografía del Proyecto Final de Carrera [1] Theodore S. Rappaport WIRELESS communications. Principles & Practice Prentice Hall PTR, 1996 [2] Siegmund M. Redl, Matthias K. Weber, Malcolm W. Oliphant An Introduccion to GSM Artech House Publisers,1995 [3] Michel Mouly and Marie-Bernadette Pautet. The GSM System for Mobile Communications Published by the authors, 1992 [4] Raymond Steele Mobile Radio Communications, 1992 [5] William Stallings Data and Computer Communications MacMillan, 1994 [6] Simon Haykin Digital Communications John Willey and Sons, 1988 [7] John Scourias Overview of the Global System for Mobile Communications University of Waterloo, 1995
Página 129
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
[8] Peter VARY, Rudolf HOFMANN, Karl HELLWIG Philips Kommunikations Industrie AG, Nürnberg. Fed. Rep. Germany Robert J. SLUYTER Philips Research Laboratories, Eindhoven, The Netherlands A Regular-Pulse Excited Linear Predictive CODEC,
1987
[9] Kazuaki Muroa, Kenkichi Hirade (Mebers IEEE) GMSK Modulation for Digital Mobile Radio Telephony. IEEE Transactions on Communications. VOL. COM-29, No. 7, July 1981 [10]European digital cellular telecommunications system (Phase 2). SERIES 5 y 6. European Telecommunications Standard Institute, 1993
Página 130
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
V.- Apéndices Apéndice 1.- Uso del programa TOAST El (salvo
programa el
del
TOAST
tipo
sin
de
ningún
fichero
parámetro
de
sonido)
de
entrada
comprime
los
ficheros de sonido dados en su línea de comandos. Cada fichero se reemplaza por otro fichero con la extensión .gsm. Si no se especifica ningún fichero, la compresión se aplica a la entrada estándar, y el resultado se escribe en la
salida
estándar.
Los
ficheros
comprimidos
se
pueden
restaurar a algo parecido al original usando "toast -d". Opciones: -c Escribe a la salida estándar (puede ser el monitor, la impresora, etc...). No se modifica ningún fichero. -d Descodifica los ficheros.
-f Fuerza la sustitución de los ficheros de salida si ya existen. Si -f se omite y se ejecuta el programa toast, se advierte al usuario de que el fichero se va a reemplazar (si ya existe), y éste puede optar por reemplazarlo, o no hacerlo. -p
No
borra
los
ficheros
fuente.
Los
ficheros
fuente
normalmente se eliminan a no ser que se use el parámetro -c que lo deja implicitamente. -F En procesadores con una unidad FPU ("Floating Point Unit")
pero
sin
la
instrucción
de
multiplicación,
-F
sacrifica la precisión del algoritmo para obtener una mayor rapidez
y
casi
dobla
la
velocidad
del
algoritmo.
El
resultado de la codificación y descodificación no producirá
Página 131
Trabajo Final de Carrera Rafael Casañas Ávila los
mismos
Estudio y Simulación con Matlab de la Interfaz de radio de GSM resultados
suficientemente
que
próximos
en para
GSM
06.10
que
pero
pueda
da
unos
considerarse
compatible. -v
Muestra
la
versión
del
programa
toast
en
la
salida
estándar. Muestra
-h
una
breve
descripción
de
los
diferentes
parámetros de entrada del programa toast. A la hora de identificar el tipo de fichero de entrada hemos de darle un parámetro de entrada del tipo de fichero a usar. Estos parámetros son los siguientes: -u Señal codificada con ley µ, 8 bits muestreada a 8 KHz. -a Señal codificada con ley A, 8 bits muestreada a 8 KHz. -s Señal codificada con ley µ, 8 bits, con cabecera de audio, muestreada a 8 KHz. -l Señal con codificación lineal, 16 bits, muestreada a 8 KHz. Si no especificamos ningún parámetro de entrada del tipo de fichero de sonido, el programa entenderá que se trata de un fichero tipo ley µ sin cabecera (-u). Por otra parte hay que decir que debemos de introducir el fichero sin extensión, ya que el programa estaba pensado para que funcionase en entorno UNIX, en donde un fichero puede tener varias extensiones consecutivas. Sin embargo, si
lo
usamos
en
entorno
MS-DOS,
el
programa
intentará
añadir la extensión .gsm a la hora de codificar, guardando el nombre que le dimos de entrada. Por lo tanto si el
Página 132
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
fichero de entrada ya tenía extensión, le va a intentar dar otra, produciéndose un error del sistema. El
fichero
comprimido,
contiene
los
260
bits
correspondientes a un intervalo de voz de 20 ms. Estos 260 bits, nos quedarían agrupados en 32 bytes y medio. Dado que este es un número poco manejable, se le añade al comienzo de cada trama cuatro bits, que representan el número 13 en binario (1101), haciendo referencia a que el codec comprime a 13 kbps. El significado de los diferentes bits lo podemos obtener
de
la
siguiente
rutina
en
lenguaje
C,
llamada
"gsm_encode": /* * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische * Universitaet Berlin. See the accompanying file "COPYRIGHT" for * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. */ #include "private.h" #include "gsm.h" #include "proto.h" void gsm_encode P3((s, source, c), gsm s, gsm_signal * source, gsm_byte * c) { word LARc[8], Nc[4], Mc[4], bc[4], xmaxc[4], xmc[13*4]; int i; Gsm_Coder(s, source, LARc, Nc, bc, Mc, xmaxc, xmc); /*
variable
size
GSM_MAGIC
4
LARc[0] LARc[1] LARc[2] LARc[3] LARc[4] LARc[5] LARc[6] LARc[7]
6 6 5 5 4 4 3 3
Nc[0] bc[0] Mc[0] xmaxc[0] xmc[0] xmc[1] xmc[2] xmc[3]
7 2 2 6 3 3 3 3
Página 133
Trabajo Final de Carrera Rafael Casañas Ávila
Estudio y Simulación con Matlab de la Interfaz de radio de GSM
xmc[4] xmc[5] xmc[6] xmc[7] xmc[8] xmc[9] xmc[10] xmc[11] xmc[12]
3 3 3 3 3 3 3 3 3
Nc[1] bc[1] Mc[1] xmaxc[1] xmc[13] xmc[14] xmc[15] xmc[16] xmc[17] xmc[18] xmc[19] xmc[20] xmc[21] xmc[22] xmc[23] xmc[24] xmc[25]
7 2 2 6 3 3 3 3 3 3 3 3 3 3 3 3 3
Nc[2] bc[2] Mc[2] xmaxc[2] xmc[26] xmc[27] xmc[28] xmc[29] xmc[30] xmc[31] xmc[32] xmc[33] xmc[34] xmc[35] xmc[36] xmc[37] xmc[38]
7 2 2 6 3 3 3 3 3 3 3 3 3 3 3 3 3
Nc[3] bc[3] Mc[3] xmaxc[3] xmc[39] xmc[40] xmc[41] xmc[42] xmc[43] xmc[44] xmc[45] xmc[46] xmc[47] xmc[48] xmc[49] xmc[50]
7 2 2 6 3 3 3 3 3 3 3 3 3 3 3 3
Página 134
Trabajo Final de Carrera Rafael Casañas Ávila xmc[51]
Estudio y Simulación con Matlab de la Interfaz de radio de GSM 3
*/ *c++ = *c++ = *c++ = *c++ = *c++ = *c++ = *c++ = *c++ =
*c++ = *c++ = *c++ =
*c++ = *c++ = *c++ = *c++ =
*c++ = *c++ = *c++ =
*c++ = *c++ =
((GSM_MAGIC & 0xF) > 2) & 0xF); ((LARc[0] & 0x3) 2) & 0x7); ((LARc[3] & 0x3) 2) & 0x3); ((LARc[5] & 0x3)