UNIVERSIDAD DE GRANADA ESTUDIOS DE INGENIERÍA ELECTRÓNICA ESTUDIO Y SIMULACIÓN CON MATLAB DE LA INTERFAZ DE RADIO DE GSM

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

14 downloads 60 Views 2MB Size

Recommend Stories


INTERFAZ DE RADIO W-CDMA
INTERFAZ DE RADIO W-CDMA Universal Mobile Telecommunications System Claudio Avallone [email protected] IIE 14 de septiembre de 2011 1 / 70 Agen

Historia de la radio universitaria: estudios de caso de las emisoras LAUD y UN Radio*
Historia de la radio universitaria: estudios de caso de las emisoras LAUD y UN Radio* University Radio History: Case Studies from the LAUD and the UN

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)

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.