documento jorge cardenas
TRANSCRIPT
1
1. DESCRIPCION DEL SISTEMA GLOBAL DE COMUNICACIONES MOVILES
(GSM)
En este capítulo se explicaran los conceptos básicos de la tecnología GSM, se darán a conocer los
elementos de hardware que componen una red, la estructura de la interfaz de radio, el
funcionamiento básico y se explicarán los indicadores de desempeño más relevantes para
monitorear el comportamiento de la red y la implicación que estos poseen en la percepción del
usuario de la calidad del servicio.
1.1 Elementos de la red
1.1.1 Estación móvil:
Esta compuesto por el terminal y una tarjeta SIM (Suscriber Identifier Module). La tarjeta SIM es
personal y única para cada suscriptor. El terminal debe poseer características similares a un
teléfono fijo en términos de calidad. Tiene funcionalidades como modulación y demodulación
GMSK, codificación y decodificación de canal, debe tener generación multi‐frecuencia doble‐tono
y una batería de larga duración. La Tarjeta SIM es un microchip operando en conjunto con una
tarjeta de memoria, su principal función es el almacenamiento de datos del operador y el usuario.
Las funciones más importantes de la tarjeta SIM son la autenticación, seguridad en la transmisión
y el almacenamiento de los datos del usuario.
1.1.2 Sistema de estaciones Base (BSS):
El Sistema de Estaciones Base está compuesto por dos componentes:
Base Transceiver Station (BTS): Se encarga de proveer la conexión física con el terminal del
usuario por medio de la interfaz de aire. Opera a uno o varios pares de frecuencia.
2
Base Station Controller (BSC): Se encarga de controlar un grupo de BTSs, entre sus
funciones se encuentran el control del Handover y gestión de la red de radio.
1.1.3 Mobile Switching Center (MSC):
El MSC se encarga de enrutar y gestionar las llamadas desde y hacia los abonados. También tiene
como función la autenticación de los usuarios en la red.
Figura 1. Estructura de una red GSM [10]
1.2 Estructura de la Interfaz de Radio:
El estándar GSM está basado en TDMA sobre múltiples portadoras (FDMA), y duplexión en
frecuencia. Cada portadora tiene un ancho de banda de 200 KHz, y está dividida en tramas TDMA
de 4.615 ms. Cada trama está compuesta por ocho time slots. En la siguiente tabla se observa la
definición de las bandas para GSM.
3
Tabla 1. Bandas de frecuencia para GSM [2]
Figura 2. Esquema de una trama GSM [2]
Los canales se dividen en dos clases: canales lógicos y canales físicos. Cada slot de tiempo de una
trama TDMA representa un canal físico. Un canal lógico se refiere al tipo de información
transmitida en cada canal físico. Los canales lógicos se dividen en dos clases: canales de tráfico
(TCH) y canales de control (CCH). Los canales de tráfico son usados para transportar la información
de voz o datos enviada por el usuario. Los canales de control se encargan de transmitir la
información de señalización y control. En la siguiente tabla se puede observar los diferentes tipos
de canales lógicos.
4
Tabla 2. Canales lógicos de control. [2]
Un canal de tráfico Full‐Rate (TCH/F) es un canal de voz o de datos que usa una codificación de 13
Kbps, a una tasa de transmisión efectiva de 9.6, 4.8 o 2.4 Kbps. Un canal de tráfico Half‐Rate
(TCH/H) usa codificación a 7 Kbps y tiene una tasa efectiva de transmisión de 4.8 Kbps y 2.4 Kbps.
A cada slot de tiempo se le puede asignar un canal de tráfico Full‐Rate(TCH/F), o dos canales de
tráfico Half Rate (TCH/F), es decir, una portadora GSM soporta 8 usuarios usando codificación Full
Rate o 16 usuarios si se usa codificación Full Rate.
1.3 Desempeño de la interfaz de radio
El sistema GSM implementa funcionalidades que incrementan el desempeño de la interfaz de
radio ante la interferencia, mejorando así la calidad de la voz y aumentando la capacidad del
sistema mediante la disminución de la sensibilidad a la interferencia.
5
1.3.1 Saltos en frecuencia (Frequency Hopping)
Frequency Hopping (FH) es una técnica que mejora la relación señal a ruido (C/I) por medio del
uso de múltiples portadoras de diferentes frecuencias. El principio del FH es la no correlación del
efecto del desvanecimiento en un punto sobre dos frecuencias distintas, es como implementar
diversidad de frecuencia, resultando en una misma calidad de comunicación con menor relación
portadora/interferente (C/I) y portadora/ruido (C/N). [2]
1.3.2 Transmisión discontinua (DTX)
Consiste en la reducción de la información transmitida en los momentos de silencio en una
comunicación. Esto se logra mediante la función VAD (Voice activity detection). Cuando hay un
periodo de silencio se envían únicamente 12 tramas en un periodo de 480 ms, cuando se detecta
sonido se envían 100 tramas en el mismo periodo. Usando trasmisión discontinua se incrementa la
relación señal a ruido (C/I) en un factor de aproximadamente 3 dB.
Figura 3. Transmisión discontinua (DTX) [2]
1.4 Indicadores de desempeño de la red GSM (KPIs)
El desempeño de una red celular se puede determinar usando diferentes “Key performance
indicators” (KPIs), los cuales pueden medirse por medio de Drive Test. Algunos de estos
indicadores son:
1.4.1 Potencia recibida (RXLEVEL) y Relación Señal‐Interferencia (C/I)
Estos indicadores son muy importantes ya que nos indican la cobertura o no cobertura del servicio
en una zona específica. En condiciones típicas del medio ambiente, la relación señal a ruido de ser
mayor a 9 dB y la potencia recibida debe ser superior a ‐104 dBm para GSM, ‐102 dBm para PCS
1900 y ‐100 dBm para DCS 1800. [1] El parámetro RXLEVEL puede ser de tipo Full y Sub
6
dependiendo del número de tramas que son tenidas en cuanta para el cálculo del nivel de
potencia recibida. El valor de RXLEVEL FULL el promedio de la potencia recibida en todas las
tramas en un periodo de 480 ms, y es reportado en el SACCH (Slow Associated Control Channel).
En este periodo de tiempo ocurren 104 tramas TDMA, pero 4 de ellas son tramas “Idle” por lo
tanto la medición se realiza en promedio sobre 100 Tramas. Cuando se usa la función DTX, el valor
de RXLEVEL SUB, es calculado sobre 12 tramas, cuando hay un periodo de silencio (4 SACCH + 8
SID). Las tramas SID (Silence Descriptor), contienen información, para crear ruido de confort en los
receptores. Los valores de Sub deben ser mayores a los de Full.
1.4.2. Mean Opinion Score (MOS)
La calidad de la voz puede ser cuantificada mediante el “Mean Opinion Score” (MOS). Los valores
del MOS están comprendidos entre uno y cinco, siendo uno malo y cinco excelente. El valor del
MOS se basa en la opinión subjetiva de grupo de personas que califican la calidad de la voz que se
escucha en una comunicación. Los fabricantes de equipos de medición de calidad de voz han
desarrollado algoritmos para calificar el MOS, mediante la comparación de la señal de voz recibida
en el terminal y la señal original.
1.4.3 Bit Error Rate (BER)
Es la medición de la tasa de error de bit en recepción antes del proceso de codificación. En GSM el
BER se muestra en el RXQUAL, este parámetro tiene valores entre cero y siete. La distribución del
RXQUAL se muestra en la tabla 3.
Tabla 3. Valores de RXQUAL y su correspondiente BER [2]
7
Al igual que en el RXLEVEL, el RXQUAL puede ser Full y Sub, y se calculan de la misma manera. En
la siguiente gráfica se enseña la composición de un periodo SACCH.
Figura 4. Ráfaga TDMA [11]
Un periodo SACCH consiste en 4 multitramas, la cuales constan de 26 tramas TDMA cada una. El
cálculo del RXQUAL se realiza sobre todas las tramas. En la siguiente gráfica se muestra la
composición de una ráfaga TDMA cuando la función DTX está habilitada y hay un momento de
silencio.
8
Figura 5. Ráfaga TDMA, en un periodo de silencio.[11]
Debido a que en una conversación humana, un gran porcentaje del tiempo son silencios, entonces
el valor Sub es un indicador más representativo del desempeño de la red.
1.4.4. Frame Erasure Rate (FER)
Es un indicador de desempeño muy importante ya que tiene una gran correlación con la calidad de
la voz final que percibe el usuario. GSM codifica la voz en tramas de 20 ms de duración. En cada
trama, son añadidos 3 bit CRC (Código de redundancia cíclica). Cuando un terminal decodifica los
260 recibidos en la trama, verifica los 3 bit CRC para los 50 bits más significativos. Si el CRC falla la
trama es descartada. Como solo se usan 3 bit la probabilidad de detectar tramas defectuosas es
muy baja. El FER es el porcentaje del total de tramas descartadas sobre 100 tramas recibidas. No
se puede relacionar directamente el BER con el FER, ya que el valor del FER también depende del
esquema de codificación de canal usado o de las técnicas de salto en frecuencia (FH).
1.4.5 Tasa de llamadas caídas (DCR)
Mide el porcentaje de conexiones perdidas, este un KPI muy importante ya que se considera que
una llamada caída afecta generalmente muy negativamente la percepción de calidad del servicio
9
del usuario final. En un drive test el DCR se calcula contando las llamadas caídas, sobre el total de
intentos de llamadas.
1.4.6 Tasa de llamadas bloqueadas (BCR)
Como su nombre lo indica mide el índice de llamadas generadas que no logran registrarse en la
red. Es también, un indicador muy importante en la perspectiva del usuario final.
Todos los indicadores de desempeño son bastante útiles ya que muestran diferentes aspectos del
desempeño de la red. El factor importante es entender lo que cada uno representa y la relación
que existe entre ellos. Por ejemplo no es posible relacionar directamente el BER con la calidad del
audio, ya que está también depende del esquema de decodificación, pero el BER es útil para
determinar la calidad de la interfaz de aire.
Figura 6. Ubicación en la cadena de recepción de los KPIs [2]
10
2. CARACTERISTICAS DE LOS EQUIPOS Y PROCEDIMIENTO DE MEDICION
La calidad de una red celular es determinada finalmente, por el grado de satisfacción del usuario
de la red. Drive Test es una herramienta muy útil para los operadores y los entes reguladores,
porque les permite verificar en campo la percepción que el usuario tiene del servicio, así el
operador podrá hacer una optimización más eficiente de la red y un ente regulador podrá verificar
el cumplimiento de las normas de la calidad del servicio, exigidos en la legislación.
2.1 Tipos de Drive Test
Existen tres clases de Drive Test, los cuales son útiles para comprobar distintos parámetros de la
red.
2.1.1 Scanning:
Es el Drive Test más simple y consiste en la medición del nivel de potencia de las portadoras que
atienden una región. Este tipo de medición se utiliza para determinar las zonas donde se presenta
interferencia co‐canal e interferencia de canal adyacente. El Scanning se puede desarrollar a
cualquier hora del día ya que no se ve afectado por el tráfico generado por los usuarios en la zona.
En las ciudades este tipo de medición se debe hacer cuadra a cuadra, en lo posible, con el fin de
recolectar la mayor cantidad de muestras, que permitan hacer un análisis correcto del estado de la
red. El equipo más utilizado para este tipo de medición es Clarify de la compañía PCTEL.
2.1.2 Benchmarking
Este tipo de medición es muy usado por los operadores, consiste en comparar el desempeño de la
red celular de un operador con sus competidores. Para realizar este tipo de medición se requiere
un equipo, que cuente con un terminal para cada operador, estos se deben encontrar en igualdad
de condiciones, por lo general se ubican en la parte de atrás del vehículo. Los terminales son
controlados por un dispositivo que genera llamadas automáticamente hacia unas líneas fijas, las
cuales están conectadas a un terminal que responde automáticamente, y envía una grabación de
voz la cual es analizada y calificada por el dispositivo, y los datos son almacenados en la unidad del
11
disco duro. En este tipo de medición también se capturan los valores de los KPIs vistos en el
capítulo uno. El equipo más usado en este tipo de medición es Seven.Five de la compañía
Comarco. Está medición se debe desarrollar en horas de alto nivel de tráfico.
Figura 7. Equipo para Benchmarking Seven.Five
2.1.3 Drive Test Simple
Consiste en la verificación de los indicadores de desempeño de la red celular. También se requiere
un teléfono móvil que genere llamadas automáticamente a otro destino, por lo general una línea
fija, para que los valores capturados no se vean afectados por un mal desempeño de la región de
la red donde se encuentra el destinatario. Existen varios equipos para realizar este tipo de
mediciones, entre otros están TEMS de la compañía Ericsson y Qualipoc de Swissqual.
2.2 Procedimiento de toma de datos
Las mediciones que serán analizadas se obtuvieron mediante un Drive Test simple, el cual se
desarrollo para verificar la cobertura y la calidad del servicio en vías principales, algunos cascos
urbanos y ciudades principales. El Drive Test se realizo en horas laborales, es decir de 8:00 de la
mañana a 5:00 de la tarde, durante días hábiles para obtener una percepción de la calidad del
servicio en horas en las que la red celular es más exigida. Se realiza únicamente un recorrido a una
velocidad máxima de 50 Km/hora. El teléfono es ubicado sobre el panel frontal del equipo para
que el ingeniero de Drive Test pueda verificar fácilmente el correcto funcionamiento de dispositivo
12
y así asegurarse que los datos recopilados tengan validez. Todos los parámetros capturados son
geográficamente referenciados
2.3 Equipos de medición
2.3.1 Qualipoc
Es un novedoso sistema basado en un teléfono inteligente para optimización y medición y
monitoreo de la calidad del servicio. La aplicación Qualipoc es instalada en teléfonos comerciales
que soporten el sistema operativo Symbian. Las pruebas se realizan sin la necesidad de hardware
adicional.
Qualipoc soporta varios tipos de Test, dependiendo de los requerimientos de la medición para
obtener realmente la perspectiva del usuario sobre el servicio. Los tipos de medición que se
pueden desarrollar con Qualipoc son:
Llamada a cualquier número: este tipo de medición se realiza con el fin de medir la
accesibilidad a la red.
Pruebas de calidad de voz (MOS)
Pruebas de datos como Ping, FTP y UDP
Pruebas de navegación en portales WAP y HTTP URL
Mensajería
Video Streaming y Video llamada con calidad de video.
El equipo usado en las mediciones es el nokia N75, el cual es un teléfono convencional, por lo
tanto se puede decir que las mediciones realizadas son comparables con la visión del usuario de la
calidad del servicio.
13
Figura 8. Qualipoc [8]
2.3.2 TEMS Investigation
Desarrollado por la empresa Ericsson, este equipo permite el monitorea de las tecnolgías GSM,
Edge, WCDM y HSPA. El equipo básico para realizar una medición es el terminal. TEMS soporta
marcas de distintos fabricantes, cada terminal es un equipo convencional con un Firmware
instalado para realizar este tipo de mediciones. Se requiere también de un computador portátil,
que es el que se encarga de controlar el proceso de medición y el almacenamiento de los datos y
un GPS (Global Positioning System) para la georeferenciación de los eventos capturados en los
recorridos.
El teléfono móvil usado en las mediciones es el equipo K790 de Sony Ericsson. Este es un teléfono
convencional, con las especificaciones técnicas típicas de un terminal GSM en cuanto a
desempeño.
Figura 9. Tems Investigation. [9]
14
Ambos dispositivos están en capacidad de medir todos las KPI explicados en el capítulo 1, y las
funcionalidades de ambos son similares, se diferencian en la portabilidad, la visualización y la
estabilidad de los sistemas. Todos los equipo de medición tienen como información de salida una
base de datos, geográficamente referenciados, con los valores de los KPI capturados durante el
recorrido, esta base de datos es analizada por los Ingenieros para encontrar las zonas de la red
donde se está presentando un mal desempeño. En los documentos anexos se encuentra la
información completa de los equipos.
15
3. PROGRAMACION USANDO SISTEMAS DE INFORMACION GEOGRAFICA
En este capítulo se explicara el proceso usado para importar las bases de datos creadas por los
equipos de medición y la forma como estos datos son analizados y visualizados, en la herramienta
de Post Proceso.
A partir de las bases de datos creadas, se obtienen archivos tipo texto, con un formato
estructurado por columnas. Cada columna guarda la información de algún parámetro y cada fila
representa la información captada en un punto. Todos los puntos están geográficamente
referenciados. El proceso de importación de los datos es diferente para cada equipo de medición a
continuación se explica el procedimiento para Qualipoc y TEMS. La herramienta se desarrollo
sobre Visual Basic 2005.
3.1. Proceso de importación de datos
Con el equipo Qualipoc, el programa para la exportación de los datos, crea archivos diferentes
para cada parámetro, es decir, cada KPI se almacena un archivo, por esta razón se deben cargar
varios archivos en la herramienta para importar los datos que son relevantes para el análisis de la
calidad del servicio. Los parámetros que vamos a utilizar para el análisis de la medición realizada
con este equipo son:
RXLEVELSUB
RXQUALSUB
MOS
Tasa de llamadas caídas (DCR).
Tasa de llamadas bloqueadas BCR).
16
Ya que la información de la tasa de llamadas caídas y la tasa de llamadas bloqueadas están
incluidas en un archivo, se deben importar en total cuatro archivos. En la siguiente figura se
muestra el menú para la selección de los datos a importar.
Figura 10. Menú para la importación de datos.
Antes de cargar una medición, se debe seleccionar el equipo de medición, y el parámetro que será
importado. Los datos son importados de acuerdo a la columna en la que están ubicados dentro del
archivo de texto.
TEMS, por el contrario crea un archivo estructurado de texto con todos los datos requeridos, por
lo tanto solo es necesario importar un archivo. Los datos captados por el equipo TEMS para
evaluar la calidad del servicio son:
17
RXLEVELSUB
RXQUALSUB
FER
Tasa de llamadas caídas (DCR).
Tasa de llamadas bloqueadas (BCR).
Una vez realizada la importación, se hará uso de un sistema de información geográfica incluido en
la herramienta para visualizar el sitio exacto donde ocurrieron los eventos más relevantes y poder
correlacionar los problemas de la red, con los parámetros de señal obtenidos en una región
específica. A continuación se hará una breve introducción a los sistemas de información geográfica
y se dará una descripción del desarrollo para la herramienta.
3.2 Introducción a los sistemas de información geográfica:
Los sistemas de información geográfica permiten la manipulación, el análisis, la captura y el
despliegue de información geográficamente referenciada y son usados por diferentes organismos,
como empresas prestadoras de servicios públicos, planificación urbanística, operadores de
telecomunicaciones, etc. Ya que estos permiten resolver problemas complejos de planificación y
gestión.
“El SIG funciona como una base de datos con información geográfica (datos alfanuméricos) que se
encuentra asociada por un identificador común a los objetos gráficos de un mapa digital. De esta
forma, señalando un objeto se conocen sus atributos e, inversamente, preguntando por un
registro de la base de datos se puede saber su localización en la cartografía.”[7]
La información es trabajada mediante capas, en cada capa se visualiza diferentes clases de
información, por ejemplo, una capa puede ser malla vial, y la capa que se monta encima
puede ser la red de acueducto y alcantarillado, de esta manera se puede observar como una
18
obra en las tuberías puede afectar la malla vial. Este método de trabajar por capas permite
que el análisis de los datos sea rápido y sencillo.
Figura 11. Trabajo mediante capas [7]
La herramienta está en capacidad de crear archivos de mapas en formato “Shape”. Este formato
es compatible con diferentes programas de sistemas de información geográfica, entre los cuales
está Mapinfo que es uno de los más usados por los operadores de telecomunicaciones.
3.3 Uso de sistemas de información geográfica en la herramienta de software
Para lograr trabajar con sistemas de información geográfica sobre Visual Basic 2005, se debe
instalar el controlador “Mapwingis ActiveX Control” de la página www.mapwindow.com, el cual es
de libre distribución. Este controlador es necesario para agregar el componente “Map Control” y la
librería de instrucciones para la creación, manipulación y visualización de mapas en Visual Basic
2005.
Como primer paso se implemento la función de abrir mapas en formato Shape y visualizarlos en
una ventana, con el fin de lograr ubicar geográficamente la zona donde se realizaron las
mediciones y obtener una mejor perspectiva de los objetos ubicados en la zona de medición que
puedan afectar la señal transmitida e pueda influenciar negativamente la calidad recibida en el
terminal del usuario, como por ejemplo montañas que se interpongan entre la estación base y el
terminal, o mapas con información del uso del suelo, que permite determinar las zonas que
19
pueden absorber la señal y causar desvanecimientos, en ciertas partes del recorrido. En la figura
13 se pueden visualizar las capas de departamentos y cascos urbanos abiertos en la herramienta.
Figura 12. Departamentos y Cascos Urbanos de Colombia
La ventana “Data Layers” que tiene como función el control de la visibilidad de las capas. Las
mediciones se visualizaran usando un mapa temático de colores para visualizar los niveles de los
parámetros captados.
Para el parámetro RXLEVELSUB se utilizan dos colores, el verde indica los puntos donde el nivel
recibido es mayor a ‐104 dBm y rojo los puntos donde el nivel recibido es menor. Se usa este valor
porque como se explico en el capítulo dos, ‐104 dBm es el límite de sensibilidad en la mayoría de
los teléfonos convencionales. Entonces en los puntos donde se presenta un nivel por debajo de
‐104 dBm, existe una probabilidad muy baja de que un usuario puede establecer una llamada o de
mantener una comunicación. En la siguiente figura se muestra la forma como es visualizado el
mapa de RXLEVELSUB del Drive Test que se realizo en la ciudad de Villavicencio.
20
Figura 13. Zonas de cobertura y no cobertura.
Para lograr entender la información que se visualiza en el programa, en la parte inferior izquierda
se muestra la leyenda por colores del mapa, indicando que representa cada color.
El siguiente KPI es el RXQUAL SUB también de la ciudad de Villavicencio, en la ventana de la
leyenda se observa el valor del RXQUAL SUB que representa cada valor. En este mapa se puede
visualizar las zonas donde el valor de BER es bastante alto. Si lo comparamos con el mapa de
RXLEVEL SUB, las zonas donde el RXQUAL SUB es malo, coinciden con las zonas donde las
potencias son más, descubriendo de esta manera las posibles causas del aumento del BER en esas
regiones.
21
Figura 14. RXQUAL SUB en la ciudad de Villavicencio.
En la siguiente figura se muestra el mapa del MOS medido con la herramienta Qualipoc. Los
valores mostrados en la leyenda están de acuerdo a los siguientes rangos:
Bueno: valores de MOS mayores a 3.8.
Aceptable: valores de MOS menores a 3.8 y mayores a 3.2
Malo: valores de MOS menores a 3.2 y mayores a 2.5
Pésimo: valores de MOS menores a 2.5
Si se compara el mapa de MOS con el de RXQUAL SUB se puede observar que no existe una
relación directa entre estos. No es posible afirmar que en las zonas donde se midió un valor alto
de RXQUAL SUB se presentará una calidad de voz baja.
22
Figura 15. MOS medido en la ciudad de Villavicencio
En el caso de una medición realizada con el equipo TEMS no se presentara el MOS si no el FER,
este parámetro está muy ligado a la calidad de voz final recibida en el terminal del usuario. Los
rangos definidos para este parámetro son:
<=2, el usuario no detecta ningún error en la comunicación.
>2 y <=5, el usuario puede experimentar un sonido “Ping‐Pong”, parecido al rompimiento
de una botella.
>5, la comunicación es incompresible.
El mapa de FER se visualiza de la siguiente manera.
23
Figura 17. FER Villavicencio, Drive Test realizado con TEMS Investigation.
Las estadísticas de llamadas se presentan de la siguiente manera. Algunos puntos donde se
presentan llamadas caídas, están en las zonas que presentan bajos niveles de potencia. Otras
razones por las que pueden ocurrir éstos eventos son fallos de Handover o exceso de tráfico en la
red. Este es un indicador del desempeño, ya que una llamada caída o bloqueado afecta
directamente la percepción que tiene el usuario de la calidad del servicio de la red.
24
Figura 17. Estadísticas de llamadas
Con los indicadores de desempeño que se visualizan en la herramienta un ingeniero esta en la
capacidad de encontrar las zonas de la red con bajos niveles de desempeño y si se cuenta con la
base de datos de las estaciones y sus configuraciones, se podrá descubrir el problema y aplicar los
correctivos necesarios.
25
4. ANALISIS DE LA CALIDAD DEL SERVICIO
En este capítulo se definirá el concepto de calidad del servicio desde el punto de vista del usuario,
se explicar la correlación de los KPI con la calidad del servicio y los cálculos de los KPI para dar una
calificación global de la calidad en una zona de la red.
4.1 Definición de calidad del servicio y desempeño de la red
La calidad del servicio se define como el efecto colectivo del desempeño de un servicio el cual
determina el grado de satisfacción del usuario de éste.[4] Pero la calidad del servicio también se
puede definir de varias maneras, dependiendo del punto de vista:
Desde el punto de vista del usuario, la calidad se define como el nivel de satisfacción de
éste; es decir con el cumplimiento de las expectativas de un usuario al momento de
adquirir un servicio (publicidad, tarifas, atención al usuario, etc).[3]Se puede dividir en
aspectos técnico y no técnicos. A un usuario, generalmente, no le interesa la forma de
como se provee un servicio, o de alguno de los aspectos del diseño de la red, solo le
interesa la calidad del servicio “end to end”.[3]
Desde el punto de vista del proveedor del servicio, la calidad es el resultado de las
prestaciones ofrecidas por cada una de las partes implicadas: terminales, red de acceso,
red de transporte (Core) y los servicios.
Los siguientes parámetros conforman la calidad del servicio de telefonía de una red GSM:
Accesibilidad de red: Probabilidad de que un usuario disponga del servicio de telefonía.
Accesibilidad del servicio: Probabilidad de que un usuario pueda establecer una llamada.
Integridad del servicio: Se refiere a la calidad de la voz, la voz recibida en el terminal debe
ser patente para el usuario.[3]
26
Mantenimiento del servicio: Se refiere a la terminación de una llamada sin que una de las
partes de la comunicación haya decidido terminarla.
Figura 18. Relación entre la satisfacción del cliente, Calidad de servicio y desempeño de la red.[3]
El grado de satisfacción de un usuario la componen aspectos técnicos y no técnicos, entre los
aspectos no técnicos se encuentran la disponibilidad de los puntos de venta, atención al usuario,
planes y tarifas.
Los aspectos técnicos lo conforman el desempeño del terminal del usuario y el desempeño de la
red en una determinada zona. Se entiende como desempeño “la habilidad de la red de proveer
funciones relacionadas con la comunicación” [3].
Es la evaluación del desempeño de un elemento de conexión o la concatenación de varios
elementos empleados para proveer el servicio. Se define y se mide en términos de parámetros
que son significativos para la red y para el proveedor del servicio, y son usados para propósitos de
diseño del sistema, configuración, operación y mantenimiento. El desempeño de la red es
independiente del desempeño del terminal y de las acciones de los usuarios. El desempeño de la
red está encaminado a proveer QoS ofrecido a los usuarios.
27
4.2 Calculo de la calidad del servicio
Para realizar un cálculo la calidad del servicio que realmente refleje la percepción del usuario, se
debe tener conocimiento de lo que representa cada KPI explicado en el capítulo dos y sus
implicaciones dentro de los parámetros que definen la calidad del servicio. En la figura X se
muestra el diagrama de flujo de la herramienta.
4.2.1 Accesibilidad de la red
El KPI relacionado con este punto el nivel recibido en una zona, RXLEVEL SUB. Este parámetro nos
determina la probabilidad de que un usuario pueda establecer una comunicación. Si el valor de
este parámetro esta por encima de cierto límite la probabilidad de que un usuario pueda
comunicarse es más alta, en este caso se eligió ‐104 dBm. Las zonas con valores por debajo de este
valor se determinaron como zonas sin cobertura, debido a que tiene una menor probabilidad de
acceso al servicio. El cálculo se hará teniendo en cuenta el porcentaje del número de kilómetros
con valores medidos de RXLEVEL SUB superiores a ‐104 dBm sobre la distancia total recorrida.
100% (Ecuación 1)
4.2.2 Accesibilidad del servicio
Para el cálculo de este parámetro se usará el porcentaje de llamadas bloqueadas sobre el número
total de intentos en una medición.
ú ú
100% (Ecuación 2)
28
Figura 19. Diagrama de flujo
29
4.2.3 Integridad del servicio
Este parámetro se deba calcular de manera diferente para una Drive Test realizado con Qualipoc
uno realizado con TEMS, debido a que TEMS no tiene la posibilidad de calificar MOS se utilizara el
FER para el calcular este parámetro y además se utilizara el valor medido de RXQUAL SUB pero en
menor grado para obtener la evaluación de este parámetro.
Para Qualipoc la ecuación quedaría:
20% .
80% (Ecuación 3)
Al valor de RXQUAL SUB se le dará un peso de 20 porciento y será el número de kilómetros en los
que este valor resulto igual a cero dividido el número total de kilómetros recorridos. Al MOS se le
dará un peso del 80 porciento y será cálculo del MOS promedio de la medición sobre 5.
Para TEMS la ecuación resultaría:
20%
80%
(Ecuación 4)
El RXQUALSUB se calcula de la misma que para la medición realizada con Qualipoc y se calculara la
distancia en la que el FER resulto ser cero sobre la distancia total recorrido. Se determina un peso
de 80 porciento para el cálculo del FER debido a que este parámetro tiene una relación más
directa con la calidad final de la voz.
4.2.4 Mantenimiento del servicio
Se calculara el porcentaje de llamadas caídas dividido el número total de intentos.
ú íú
100%
(Ecuación 5)
30
El promedio de la sumatoria de los parámetros calculados, determinara la calificación global de la
calidad del servicio de la región de la red donde se desarrollo el Drive Test y dará una noción muy
importante para conocer la perspectiva del usuario para el analista de la red. Todos los
parámetros tienen el mismo peso, ya que cada uno representa aspectos importantes del
desempeño de la red. En la siguiente figura se presentan los resultados de la ciudad de
Villavicencio.
ó (Ecuación 6)
Figura 20. Resultado del QoS en la ciudad de Villavicencio
31
La herramienta muestra el resultado de cada uno de los parámetros que componen la calidad del
servicio, los computa y obtiene el resultado final del QoS, en este caso, la red GSM de la ciudad de
Villavicencio obtuvo una calificación global de 94.29%, lo que indica un buen desempeño de la red.
32
5. RESULTADOS DE LA HERRAMIENTA
En este capítulo se presentarán algunos resultados obtenidos en Drive Test desarrollado en
diferentes vías y ciudades del país, con Qualipoc y TEMS:
5.1 Drive Test con Qualipoc
5.1.1 Arauca
Figura 21. Mapa de cobertura y no cobertura, Arauca.
33
Figura 22. Mapa de RXQUALSUB
Figura 23. MOS medido
34
Figura 24. Estadísticas de llamadas.
Figura 25. Calculo de QoS en la ciudad de Arauca.
35
De acuerdo a los indicadores que son presentados por la herramienta, la red de telefonía móvil de
este operador en la ciudad de Arauca, presenta una zona con problemas de cobertura al norte de
la ciudad como se puede observar en el mapa. En esta zona bajan los valores del MOS, se
presentan altos valores de RXQUAL SUB y algunos bloqueos de llamadas. La calificación global de
la calidad del servicio es de 90% lo cual indica un buen desempeño de la red, pero claramente se
observa una zona que requiere atención del operador.
5.1.2 Vía Bogotá‐Villavicencio
Figura 26. Mapa de cobertura y no cobertura
36
Figura 27. Mapa RXQUAL SUB
Figura 28. MOS medido
37
Figura 29. Estadísticas de llamadas.
Figura 31. Cálculo de QoS en la vía Bogotá‐Villavicencio
38
En esta vía se detecto una alta tasa de llamadas bloqueadas, por lo cual el indicador de
accesibilidad del servicio tuvo una baja calificación. Los otros indicadores tienen valores
aceptables. La calificación del QoS es de 86.58%, indicando un buen desempeño de la red en esta
vía. Las zonas donde aparecen los espacios en blanco son los túneles, allí el GPS pierde la señal y
no se registran valores. Además también el usuario no tiene cobertura al entrar al túnel, por eso el
aumento en el número de llamadas bloqueadas. Pero en general en el resto de la vía el operador
garantiza el servicio y ofrece buena calidad de voz.
5.2 Drive Test con TEMS
5.2.1 Villavicencio
Figura 31. Estadísticas de llamadas
Se presenta una sola caída de la llamada, no hay bloqueos.
39
Figura 32. Mapa de cobertura y no cobertura
Figura 33. RXQUAL SUB
40
Las regiones en color corresponden a puntos donde el equipo no tomo valores de este parámetro.
Figura 34. FER
Figura 35. QoS calculado
41
ANALISIS Y CONCLUSIONES
La herramienta desarrollada está en capacidad de mostrar visualmente la información de los KPIs
recolectados en el Drive Test. Esto se logró gracias al desarrollo de un Sistema de Información
Geográfica, el cual permite crear para cada KPI un mapa temático por colores para indicar el rango
en el que se encuentra el valor de un KPI en un determinado punto. Analizando estos mapas es
posible determinar las zonas que presentan bajos índices de desempeño. También es posible
agregar mapas en formato “Shape” para visualizarlos en la herramienta. Con ésta utilidad es
posible ver la base de datos geográficamente referenciada de las estaciones base. Haciendo el
análisis de las mediciones junto al análisis del diseño de la red es posible determinar el problema
que causa un mal desempeño de la red, como altos niveles de interferencia, bajos niveles de
potencia o exceso de tráfico en una región, en la cual la infraestructura instalada no es capaz de
atender.
Mediante el cómputo de los indicadores de calidad del servicio, vistos en el capítulo cuatro, se
obtiene una calificación del desempeño en una región de la red, permitiendo al operador obtener
una imagen de la percepción de los usuarios con el servicio de telefonía. El operador determinará
si está cumpliendo con los objetivos propuestos o si debe implementar mejoras en la red para
incrementar su desempeño. Un organismo regulador también puede valerse de estos índices para
realizar interventorías a los operadores.
Las mediciones se realizaron en horas laborales, donde el tráfico generado es alto y la mediciones
realizadas reflejan el comportamiento de la red en los momentos donde es más exigida. No es lo
mismo realizar esta medición por la noche, donde muy poca gente esta usando el servicio,
entonces todos los canales están libres y la relación Señal‐Interferencia es más alta. Una medición
a estas horas reflejaría un mejor desempeño de la red, pero los datos no serían validos porque la
medición no reflejaría la perspectiva del usuario.
42
En algunas ocasiones cuando ocurre una caída de llamada o un bloqueo, se debe a eventos
fortuitos, como el tráfico de la zona en ese momento o a la presencia de alguna fuente
interferente en un determinado momento de tiempo. Para detectar que estos eventos de
llamadas se deben a problemas de la red o a casos fortuitos, los operadores deberían realizar
varios Drive Test a diferentes horas del día, con el fin si el problema es constante en la red o se
debió a efectos del ambiente por un momento del día. Pero los operadores, no acostumbran a
realizar la misma medición a diferentes horas del día, debido a los costos y al tiempo requerido.
Los equipos de medición usados para estás mediciones, cuentan con teléfonos usados
comercialmente. Estos teléfonos están equipados con un software especial para realizar este tipo
de mediciones. Como son teléfonos convencionales, no representan ninguna ventaja respecto a
los usados por los usuarios, por lo tanto las mediciones reflejan realmente la calidad del servicio
prestado a los usuarios.
Hoy en día está cobrando vigencia el uso de la telefonía móvil en otros servicios como Internet,
SMS (Short Message Service), MMS (Multimedia Message Service); y con la llegada de la telefonía
3G, se impondrá Video‐Llamada y Video‐Streaming. Los operadores estarán en la obligación de
verificar constantemente la calidad ofrecida en estos servicios. La herramienta de análisis podría
encaminarse en estos rumbos. Los equipos de medición deberán estar en la capacidad de medir
los KPIs correspondientes a estos servicios, pero el analista de red debe conocer la relación de
cada KPI con el resultado final del servicio que esta recibiendo un usuario. La herramienta se
podría enfocar al análisis de los KPI de estos servicios y así determinar automáticamente como se
esta desempeñando la red en cuanto a la prestación de estos servicios. Igualmente los datos
deberán visualizarse en mapas para localizar las zonas en las que el servicio debe mejorarse.
43
REFERENCIAS BIBLIOGRAFICAS
[1] ETSI, Digital cellular telecommunications system (Phase 2);Physical layer on the radio path
General description (GSM 05.01), 1996
[2] T. Halonen, J. Romero, J. Melero, “GSM, GPRS and Edge Performance”, 2003.
[3] ETSI, Speech Processing, Transmission and Quality Aspects (STQ); QoS aspects for popular
services in GSM and 3G networks; Part 1: Identification of Quality of Service criteria, 2007
[4] ETSI, Network Aspects (NA); General aspects of Quality of Service (QoS)and Network
Performance (NP), 1994
[5] ETSI, Speech Processing, Transmission and Quality Aspects (STQ); QoS aspects for popular
services in GSM and 3G networks; Part 2: Definition of Quality of Service parameters and their
computation, 2007.
[6] ETSI, Speech Processing, Transmission and Quality Aspects (STQ); QoS aspects for popular
services in GSM and 3G networks; Part 3: Typical procedures for Quality of Service
measurement equipment, 2007
[7] Wikipedia, Sistemas de información Geográfica, disponible en,http:
//es.wikipedia.org/wiki/Sistema_de_Informaci%C3%B3n_Geogr%C3%
[8] Swissqual, Manual Qualipoc
[9] Ericcson, Manual TEMS
[10] Ericsson, Principios del Planeamiento Celular, Libro del Estudiante.
[11] Ericsson, Measurements in TEMS Investigation GSM, White Paper
44
ANEXO A
ESPECIFICACIONES TECNICAS QUALIPOC
45
46
47
ANEXO B
ESPECIFICACIONES TECNICAS TEMS INVESTIGATION
48
49
ANEXO C
CODIGO DE LA HERRAMIENTA DESAROLLADO EN VISUAL BASIC 2005
50
Imports system.IO Imports System.Text Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Legend1.Map = AxMap1.GetOcx() End Sub Public Sub loadmap() Dim mapa As New MapWinGIS.Shapefile Dim handle As Integer mapa.Open(OpenFileDialog1.FileName) 'AxMap1.AddLayer(mapa, True) handle = Legend1.Layers.Add(mapa, True) Legend1.Map.LayerName(handle) = System.IO.Path.GetFileNameWithoutExtension(mapa.Filename) End Sub Public Sub AxMap1_MouseDownEvent(ByVal sender As System.Object, ByVal e As AxMapWinGIS._DMapEvents_MouseDownEvent) Handles AxMap1.MouseDownEvent End Sub Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click Form2.Show() End Sub Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then loadmap() Else Me.Show() End If End Sub Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick Dim tag As String tag = e.Button.Tag Select Case tag Case "Zoom In" AxMap1.CursorMode = MapWinGIS.tkCursorMode.cmZoomIn Case "Zoom Out" AxMap1.CursorMode = MapWinGIS.tkCursorMode.cmZoomOut Case "Pan" AxMap1.CursorMode = MapWinGIS.tkCursorMode.cmPan Case "Full Extension" AxMap1.ZoomToMaxExtents() End Select
51
End Sub Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click Legend1.Layers.Remove(Legend1.SelectedLayer) Legend1.Refresh() End Sub Private Sub Legend1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Legend1.Load End Sub End Class
Imports system.io Imports System.Text Public Class Form2 'Declaracion de variables Dim mapa, mapa1, mapa2, mapa3, mapa4, mapa5 As New MapWinGIS.Shapefile Dim linea As String Dim x As String = Nothing Dim y As String = Nothing Dim contadorlin As Integer = 0 Dim latitud, longitud, distx, disty As Single Dim ilatitud As Single = 0 Dim ilongitud As Single = 0 Dim rxlevsub As Integer Dim rxlev As String = Nothing Dim tab As Boolean Dim carac As Char Dim ntab As Integer = 0 Dim distxkm As Single = 0 Dim distykm As Single = 0 Dim distkmtot As Single = 0 Dim mnc1 As String = Nothing Dim mnc As Single Dim distr As Single = 0 Dim i As Integer = 0 Dim j As Integer = 0 Dim distcober, distnocober As Single Dim srxqual As String = Nothing Dim rxqual As Integer Dim smos As String = Nothing Dim mos As Single = 0 Dim ruta(500000) As MapWinGIS.Shape Dim point(500000) As MapWinGIS.Point Dim index, intentos As Integer Dim field As New MapWinGIS.Field Dim distancialimite As Single
52
Dim distint, int1, int2, intt, distfer As Single Dim cov, acc, mant, qos As Single Dim bloqueadas As Integer Dim caidas As Integer Dim completadas As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then calculo() Else Me.Show() End If End Sub Private Sub calculo() 'Me.Close() distancialimite = NumericUpDown1.Value Dim tabla As StreamReader = New StreamReader(OpenFileDialog1.OpenFile) 'Captura de datos linea = tabla.ReadLine() If RadioButton5.Checked = True Then 'Qualipoc If RadioButton1.Checked = True Then 'Rxlevel field.Name = "RxLevel" mapa.CreateNew("f:\rxlevel.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa.EditInsertField(field, 0) Do While Not (linea Is Nothing) linea = tabla.ReadLine() If linea = Nothing Then Exit Do End If For i = 0 To linea.Length - 1 tab = Char.IsWhiteSpace(linea, i) carac = linea.Chars(i) If tab = True Then ntab += 1 End If If ntab = 8 Then x = x + linea.Chars(i + 1) End If If ntab = 9 Then y = y + linea.Chars(i + 1) End If If ntab = 25 Then rxlev = rxlev + linea.Chars(i + 1) End If If ntab = 4 Then mnc1 = mnc1 + linea.Chars(i + 1) End If Next i = 0 ntab = 0
53
latitud = CSng(y) longitud = CSng(x) rxlevsub = CInt(rxlev) mnc = CSng(mnc1) distx = latitud - ilatitud disty = longitud - ilongitud distxkm = distx * 110 distykm = disty * 110 distr = Math.Sqrt(Math.Pow(distxkm, 2) + Math.Pow(distykm, 2)) 'Crear mapas point(contadorlin) = New MapWinGIS.Point() point(contadorlin).x = longitud point(contadorlin).y = latitud ruta(contadorlin) = New MapWinGIS.Shape() ruta(contadorlin).Create(MapWinGIS.ShpfileType.SHP_POINT) ruta(contadorlin).InsertPoint(point(contadorlin), 0) mapa.EditInsertShape(ruta(contadorlin), index) mapa.EditCellValue(0, index, rxlevsub) If distr < distancialimite Then distkmtot = distkmtot + distr If rxlevsub > -104 And rxlevsub < -30 And mnc = 103 Then distcober = distcober + distr Else distnocober = distnocober + distr End If End If ilatitud = latitud ilongitud = longitud x = Nothing y = Nothing rxlev = Nothing mnc1 = Nothing contadorlin += 1 index = contadorlin Loop cov = (distcober / distkmtot) * 100 End If If RadioButton2.Checked = True Then 'Qualipoc RxQual field.Name = "RxQual Sub" mapa1.CreateNew("f:\rxqual.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa1.EditInsertField(field, 0) Do While Not (linea Is Nothing) linea = tabla.ReadLine() If linea = Nothing Then Exit Do End If For i = 0 To linea.Length - 1 tab = Char.IsWhiteSpace(linea, i) carac = linea.Chars(i)
54
If tab = True Then ntab += 1 End If If ntab = 8 Then x = x + linea.Chars(i) End If If ntab = 9 Then y = y + linea.Chars(i) End If If ntab = 25 Then srxqual = srxqual + linea.Chars(i) End If If ntab = 4 Then mnc1 = mnc1 + linea.Chars(i + 1) End If Next i = 0 ntab = 0 latitud = CSng(y) longitud = CSng(x) rxqual = CInt(srxqual) mnc = CInt(mnc1) distx = latitud - ilatitud disty = longitud - ilongitud distxkm = distx * 110 distykm = disty * 110 distr = Math.Sqrt(Math.Pow(distxkm, 2) + Math.Pow(distykm, 2)) 'Crear mapa point(contadorlin) = New MapWinGIS.Point() point(contadorlin).x = longitud point(contadorlin).y = latitud ruta(contadorlin) = New MapWinGIS.Shape() ruta(contadorlin).Create(MapWinGIS.ShpfileType.SHP_POINT) ruta(contadorlin).InsertPoint(point(contadorlin), 0) mapa1.EditInsertShape(ruta(contadorlin), index) mapa1.EditCellValue(0, index, rxqual) If distr < distancialimite Then distkmtot = distkmtot + distr If rxqual = 0 And mnc = 103 Then distint = distint + distr End If End If ilatitud = latitud ilongitud = longitud x = Nothing y = Nothing srxqual = Nothing mnc1 = Nothing contadorlin += 1 index = contadorlin Loop int1 = (distint / distkmtot) * 20
55
End If If RadioButton7.Checked = True Then 'Qualipoc MOS Dim summos As Single Dim mospromedio As Single field.Name = "MOS" mapa2.CreateNew("f:\mos.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa2.EditInsertField(field, 0) Do While Not (linea Is Nothing) linea = tabla.ReadLine() If linea = Nothing Then Exit Do End If For i = 0 To linea.Length - 1 tab = Char.IsWhiteSpace(linea, i) carac = linea.Chars(i) If tab = True Then ntab += 1 End If If ntab = 8 Then x = x + linea.Chars(i) End If If ntab = 9 Then y = y + linea.Chars(i) End If If ntab = 25 Then smos = smos + linea.Chars(i) End If 'If ntab = 4 Then 'mnc1 = mnc1 + linea.Chars(i + 1) 'End If Next i = 0 ntab = 0 latitud = CSng(y) longitud = CSng(x) mos = CSng(smos) distx = latitud - ilatitud disty = longitud - ilongitud distxkm = distx * 110 distykm = disty * 110 distr = Math.Sqrt(Math.Pow(distxkm, 2) + Math.Pow(distykm, 2)) 'Crear mapa point(contadorlin) = New MapWinGIS.Point() point(contadorlin).x = longitud point(contadorlin).y = latitud ruta(contadorlin) = New MapWinGIS.Shape() ruta(contadorlin).Create(MapWinGIS.ShpfileType.SHP_POINT) ruta(contadorlin).InsertPoint(point(contadorlin), 0) mapa2.EditInsertShape(ruta(contadorlin), index) mapa2.EditCellValue(0, index, mos)
56
ilatitud = latitud ilongitud = longitud x = Nothing y = Nothing smos = Nothing contadorlin += 1 index = contadorlin summos = summos + mos Loop mospromedio = summos / contadorlin int2 = (mospromedio / 4.5) * 80 End If 'Estadisticas de llamadas If RadioButton8.Checked = True Then Dim accesoser As Integer = 0 Dim mantser As Integer = 0 Dim estatus As String = Nothing Dim cadena As String Dim ins As Boolean field.Name = "Estatus de llamada" mapa3.CreateNew("f:\llamadas.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa3.EditInsertField(field, 0) Do While Not (linea Is Nothing) linea = tabla.ReadLine() If linea = Nothing Then Exit Do End If For i = 0 To linea.Length - 1 tab = Char.IsWhiteSpace(linea, i) carac = linea.Chars(i) If tab = True Then ntab += 1 End If If ntab = 8 Then x = x + linea.Chars(i) End If If ntab = 9 Then y = y + linea.Chars(i) End If If ntab = 25 Then estatus = estatus + linea.Chars(i) End If If ntab = 4 Then mnc1 = mnc1 + linea.Chars(i + 1) End If Next i = 0 ntab = 0 latitud = CSng(y) longitud = CSng(x) cadena = estatus.Substring(2, 6) distx = latitud - ilatitud disty = longitud - ilongitud
57
distxkm = distx * 110 distykm = disty * 110 distr = Math.Sqrt(Math.Pow(distxkm, 2) + Math.Pow(distykm, 2)) 'Crear mapa point(contadorlin) = New MapWinGIS.Point() point(contadorlin).x = longitud point(contadorlin).y = latitud ruta(contadorlin) = New MapWinGIS.Shape() ruta(contadorlin).Create(MapWinGIS.ShpfileType.SHP_POINT) ruta(contadorlin).InsertPoint(point(contadorlin), 0) mapa3.EditInsertShape(ruta(contadorlin), index) ins = mapa3.EditCellValue(0, index, cadena) If cadena = "Failed" Then accesoser += 1 ElseIf cadena = "Droppe" Then mantser += 1 End If ilatitud = latitud ilongitud = longitud x = Nothing y = Nothing estatus = Nothing contadorlin += 1 index = contadorlin Loop acc = (1 - (accesoser / contadorlin)) * 100 mant = (1 - (mantser / contadorlin)) * 100 End If End If 'TEMS If RadioButton6.Checked = True Then If RadioButton1.Checked = True Then field.Name = "RxLevel" mapa.CreateNew("f:\rxlevel.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa.EditInsertField(field, 0) 'mapa.EditCellValue(0, index, rxlevsub) End If If RadioButton2.Checked = True Then field.Name = "RxQual" mapa1.CreateNew("f:\rxqual.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa1.EditInsertField(field, 0) 'mapa.EditCellValue(0, index, rxqual) End If If RadioButton3.Checked = True Then field.Name = "FER" mapa4.CreateNew("f:\fer.shp", MapWinGIS.ShpfileType.SHP_POINT) mapa4.EditInsertField(field, 0) 'mapa.EditCellValue(0, index, fer) End If
58
If RadioButton4.Checked = True Then field.Name = "Eventos de llamada" mapa5.CreateNew("f:\Eventos de llamada", MapWinGIS.ShpfileType.SHP_POINT) mapa5.EditInsertField(field, 0) 'mapa.EditCellValue(0, index, estado) End If Dim sfer As String = Nothing Dim sci As String = Nothing Dim fer As Integer Dim status As String = Nothing Dim estado As String Do While Not (linea Is Nothing) linea = tabla.ReadLine() If linea = Nothing Then Exit Do End If For i = 0 To linea.Length - 1 tab = Char.IsWhiteSpace(linea, i) carac = linea.Chars(i) If tab = True Then ntab += 1 End If If ntab = 10 Then x = x + linea.Chars(i) End If If ntab = 11 Then y = y + linea.Chars(i) End If If ntab = 2 Then sfer = sfer + linea.Chars(i) End If If ntab = 3 Then mnc1 = mnc1 + linea.Chars(i) End If If ntab = 5 Then rxlev = rxlev + linea.Chars(i) End If If ntab = 7 Then srxqual = srxqual + linea.Chars(i) End If If ntab = 9 Then sci = sci + linea.Chars(i) End If If ntab = 12 Or ntab = 13 Or ntab = 14 Then status = status + linea.Chars(i) End If Next i = 0 ntab = 0 latitud = CSng(y) longitud = CSng(x) If status.Length > 10 Then intentos += 1
59
estado = status.Substring(status.Length - 7, 6) Else : estado = "X" End If mnc = CInt(mnc1) rxlevsub = CInt(rxlev) rxqual = CInt(srxqual) fer = CInt(sfer) 'ci = CInt(sci) distx = latitud - ilatitud disty = longitud - ilongitud distxkm = distx * 110 distykm = disty * 110 distr = Math.Sqrt(Math.Pow(distxkm, 2) + Math.Pow(distykm, 2)) 'Crear mapa point(contadorlin) = New MapWinGIS.Point() point(contadorlin).x = longitud point(contadorlin).y = latitud ruta(contadorlin) = New MapWinGIS.Shape() ruta(contadorlin).Create(MapWinGIS.ShpfileType.SHP_POINT) ruta(contadorlin).InsertPoint(point(contadorlin), 0) 'mapa.EditInsertShape(ruta(contadorlin), index) If RadioButton1.Checked = True Then 'field.Name = "RxLevel" 'mapa.CreateNew("f:\rxlevel.shp", MapWinGIS.ShpfileType.SHP_POINT) 'mapa.EditInsertField(field, 0) mapa.EditInsertShape(ruta(contadorlin), index) mapa.EditCellValue(0, index, rxlevsub) If distr < distancialimite Then distkmtot = distkmtot + distr If rxlevsub > -104 And rxlevsub < -30 And mnc = 103 Then distcober = distcober + distr Else distnocober = distnocober + distr End If End If cov = (distcober / distkmtot) * 100 End If If RadioButton2.Checked = True Then 'field.Name = "RxQual" 'mapa.CreateNew("f:\rxqual.shp", MapWinGIS.ShpfileType.SHP_POINT) 'mapa.EditInsertField(field, 0) mapa1.EditInsertShape(ruta(contadorlin), index) mapa1.EditCellValue(0, index, rxqual) If distr < distancialimite Then distkmtot = distkmtot + distr If rxqual = 0 And mnc = 103 Then distint = distint + distr End If End If int1 = (distint / distkmtot) * 20
60
End If If RadioButton3.Checked = True Then 'field.Name = "FER" 'mapa.CreateNew("f:\fer.shp", MapWinGIS.ShpfileType.SHP_POINT) 'mapa.EditInsertField(field, 0) mapa4.EditInsertShape(ruta(contadorlin), index) mapa4.EditCellValue(0, index, fer) If distr < distancialimite Then distkmtot = distkmtot + distr If fer = 0 And mnc = 103 Then distfer = distfer + distr End If End If int2 = (distfer / distkmtot) * 80 End If If RadioButton4.Checked = True Then 'field.Name = "Eventos de llamada" 'mapa.CreateNew("f:\Eventos de llamada", MapWinGIS.ShpfileType.SHP_POINT) 'mapa.EditInsertField(field, 0) Dim insert As Boolean mapa5.EditInsertShape(ruta(contadorlin), index) insert = mapa5.EditCellValue(0, index, estado) If estado = "d Call" Then caidas += 1 ElseIf estado = "Droppe" Then bloqueadas += 1 ElseIf estado = "ll End" Then completadas += 1 End If intentos = caidas + bloqueadas + completadas acc = (1 - (bloqueadas / intentos)) * 100 mant = (1 - (caidas / intentos)) * 100 End If ilatitud = latitud ilongitud = longitud x = Nothing y = Nothing status = Nothing contadorlin += 1 index = contadorlin rxlev = Nothing srxqual = Nothing sfer = Nothing sci = Nothing mnc1 = Nothing Loop End If contadorlin = 0 distkmtot = 0 'TextBox1.Text = distkmtot 'TextBox2.Text = distcober 'TextBox3.Text = distnocober
61
'TextBox4.Text = (distcober / distkmtot) * 100 End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim j As Integer 'Qualipoc 'If RadioButton5.Checked = True Then 'Añadir mapa Rxlevel If RadioButton1.Checked = True Then Form1.PictureBox1.ImageLocation = ("C:\Documents and Settings\jhcardenas\Mis documentos\Visual Studio 2005\Projects\tesis\tesis\Resources\leyenda cobertura.jpg") mapa.SaveAs("F:\mapas\rxlevel.shp") Dim hroute As Integer Dim cobertura As Single hroute = Form1.Legend1.Layers.Add(mapa, True) Form1.Legend1.Map.LayerName(hroute) = System.IO.Path.GetFileNameWithoutExtension(mapa.Filename) For j = 0 To mapa.NumShapes - 1 cobertura = mapa.CellValue(0, j) Form1.AxMap1.set_ShapePointSize(hroute, j, 5) If cobertura < -104 Or cobertura > -20 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 0))) ElseIf cobertura >= -104 And cobertura < -20 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 0))) End If Next End If If RadioButton2.Checked = True Then 'Mapa rxqual Form1.PictureBox1.ImageLocation = ("C:\Documents and Settings\jhcardenas\Mis documentos\Visual Studio 2005\Projects\tesis\tesis\Resources\leyenda rxqual.jpg") mapa1.SaveAs("F:\mapas\rxqual.shp") Dim hroute As Integer Dim cal As Integer hroute = Form1.Legend1.Layers.Add(mapa1, True) Form1.Legend1.Map.LayerName(hroute) = System.IO.Path.GetFileNameWithoutExtension(mapa1.Filename) For j = 0 To mapa1.NumShapes - 1 cal = mapa1.CellValue(0, j) Form1.AxMap1.set_ShapePointSize(hroute, j, 8) Select Case cal Case Is = 7 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 0))) Case Is = 6 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 100, 0))) Case Is = 5
62
Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 200, 0))) Case Is = 4 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 255, 0))) Case Is = 3 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 0, 255))) Case Is = 2 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 255))) Case Is = 1 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 100))) Case Is = 0 Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 0))) End Select Next End If 'End If If RadioButton7.Checked = True Then Form1.PictureBox1.ImageLocation = ("C:\Documents and Settings\jhcardenas\Mis documentos\Visual Studio 2005\Projects\tesis\tesis\Resources\leyenda mos.jpg") mapa2.SaveAs("F:\mapas\mos.shp") Dim hroute As Integer Dim lq As Single hroute = Form1.Legend1.Layers.Add(mapa2, True) Form1.Legend1.Map.LayerName(hroute) = System.IO.Path.GetFileNameWithoutExtension(mapa2.Filename) For j = 0 To mapa2.NumShapes - 1 lq = mapa2.CellValue(0, j) Form1.AxMap1.set_ShapePointSize(hroute, j, 6) If lq <= 2.5 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 0))) ElseIf lq > 2.5 And lq <= 3.2 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 255, 0))) ElseIf lq > 3.2 And lq <= 3.8 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 0, 255))) ElseIf lq > 3.8 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 0))) End If Next End If If RadioButton8.Checked = True Then Form1.PictureBox1.ImageLocation = ("C:\Documents and Settings\jhcardenas\Mis documentos\Visual Studio 2005\Projects\tesis\tesis\Resources\leyenda estados de llamadas.jpg") mapa3.SaveAs("F:\mapas\llamadas.shp")
63
Dim hroute As Integer Dim llamadas As String hroute = Form1.Legend1.Layers.Add(mapa3, True) Form1.Legend1.Map.LayerName(hroute) = System.IO.Path.GetFileNameWithoutExtension(mapa3.Filename) For j = 0 To mapa3.NumShapes - 1 llamadas = mapa3.CellValue(0, j) Form1.AxMap1.set_ShapePointSize(hroute, j, 10) Select Case llamadas Case "Comple" Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 0))) Case "Failed" Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 255, 0))) Case "Droppe" Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 0))) End Select Next End If If RadioButton4.Checked = True Then Form1.PictureBox1.ImageLocation = ("C:\Documents and Settings\jhcardenas\Mis documentos\Visual Studio 2005\Projects\tesis\tesis\Resources\leyenda estados de llamadas.jpg") mapa5.SaveAs("F:\mapas\llamadas.shp") Dim hroute As Integer Dim llamadas As String hroute = Form1.Legend1.Layers.Add(mapa5, True) Form1.Legend1.Map.LayerName(hroute) = System.IO.Path.GetFileNameWithoutExtension(mapa5.Filename) For j = 0 To mapa5.NumShapes - 1 llamadas = mapa5.CellValue(0, j) Form1.AxMap1.set_ShapePointSize(hroute, j, 10) If llamadas = "ll End" Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 0))) ElseIf llamadas = "d Call" Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 255, 0))) ElseIf llamadas = "Droppe" Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 0))) Else Form1.AxMap1.set_ShapePointSize(hroute, j, 1) Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 255, 255))) End If Next End If If RadioButton3.Checked = True Then Form1.PictureBox1.ImageLocation = ("C:\Documents and Settings\jhcardenas\Mis documentos\Visual Studio 2005\Projects\tesis\tesis\Resources\fer.jpg")
64
mapa4.SaveAs("F:\mapas\fer.shp") Dim hroute As Integer Dim frame1 As String hroute = Form1.Legend1.Layers.Add(mapa4, True) Form1.Legend1.Map.LayerName(hroute) = System.IO.Path.GetFileNameWithoutExtension(mapa4.Filename) For j = 0 To mapa4.NumShapes - 1 frame1 = mapa4.CellValue(0, j) Form1.AxMap1.set_ShapePointSize(hroute, j, 8) If frame1 <= 2 And frame1 >= 0 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(0, 255, 0))) ElseIf frame1 > 2 And frame1 <= 5 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 255))) ElseIf frame1 > 5 Then Form1.AxMap1.set_ShapePointColor(hroute, j, Convert.ToUInt32(RGB(255, 0, 0))) End If Next End If 'Me.Close() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click TextBox1.Text = cov intt = int1 + int2 TextBox4.Text = intt TextBox5.Text = acc TextBox3.Text = mant qos = (cov + intt + acc + mant) / 4 TextBox2.Text = qos End Sub End Class