3.- Codificación del Canal
La codificación del canal añade redundancia a los datos generados por la codificación de la fuente, de forma que se detectan e incluso se corrigen algunos errores introducidos por el canal de radio.
Figura 3.1.- Proceso de codificación y decodificación del canal
En la Figura 3.1 se observa el proceso de codificación y decodificación del canal. La codificación del canal está formada por tres codificaciones sucesivas. Primero se aplica un código bloque, después se aplica un código convolucional y finalmente se realiza el entrelazado ("Interleaving"). En un código bloque, si se tienen k bits de entrada en el codificador a R bps, a la salida se tienen n bits con n > k a una velocidad R/Rc bps., 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). El entrelazado consiste en mezclar los bits de las tramas de forma que los bits que están en posiciones próximas en la señal modulada correspondan a varias tramas. Esto se realiza por que la probabilidad de error de bits sucesivos está muy correlacionada y el rendimiento del código convolucional es mucho mayor cuando los errores están decorrelados.
En GSM se aplican las dos primeras técnicas de codificación sólo a unos determinados bits. Como se vió en la sección 2.2.2, la codificación de la fuente a velocidad completa, produce 260 bits cada 20 ms (13 kbps). Estos bits contienen los diferentes parámetros del método de
codificación de la fuente RPE-LTP, pero los diferentes parámetros y sus correspondientes bits tienen una importancia desigual respecto a la calidad subjetiva. Para la clasificación de los bits se realizaron test de audición. En estos tests, para clasificar un único bit se codifica un intervalo de voz y el bit objeto de estudio se invierte en cada segmento y el resultado se pasa por el decodificador. Varios oyentes comparan la calidad de la señal obtenida con seis patrones de referencia con varios niveles de distorsión. Esto se repite para los 260 bits. El resultado fue que los bits se clasificaron en tres clases de importancia decreciente que se dan en la tabla 3.1. Estas clases reciben el nombre de clase Ia que está formada por los 50 primeros bits, clase Ib que está formada por los bits siguientes hasta el 181, y finalmente la clase II que está formada por los 78 últimos bits. En la tabla se observa como los parámetros más importantes son los parámetros LAR, los máximos de la amplitud de bloque y los retardos LTP. Con una importancia mucho menor se sitúan los retardos LTP, la posición de grid y los pulsos RPE. Además para cada parámetro los bits más importantes son los más significativos.
Clase de Nombre de Número de Indice Etiqueta Clase
importancia parámetro
parámetro de bit
Log area ratio 1 1 5 d0,
1 Amplitud de bloque 12,29,46,63
5 dl,d2,d3,d4
Log area ratio 1 1 4
2 Log area ratio 2 2 5
Log area
ratio 3 3 4
Log area ratio 1 1 3
Log area ratio 2 2 4
Log area ratio
3 3 3
Log area ratio 4 4 4
LTP lag 9,26,43,60 6 Ia
3 Amplitud de bloque
12,29,46,63 4
Log area ratio 2,5,6 2,5,6 3
LTP lag 9,26,43,60 5
LTP lag
9,26,43,60 4
LTP lag 9,26,43,60 3
LTP lag 9,26,43,60 2
Amplitud de bloque 12,29,46,63 3
Log area ratio 1 1 2
Log
area ratio 4 4 3
Log area ratio 7 7 2
4 LTP lag 9,26,43,60 1
...d48.d49,
Log area ratio 5,6 5,6 2 d50...
Ganancia LTP 10,27,44,61
1
LTP lag 9,26,43,60 0
Posición de GRID 11,28,45,62 1
Log area ratio 1 1 1
Log area ratio 2,3,8,4 2,3,8,4 2
Log
area ratio 5,7 5,7 1
Ganancia LTP 10,27,44,61 0
Amplitud de bloque
12,29,46,63 2 Ib
Pulsos RPE 13...25 2
Pulsos RPE 30...42 2
5 Pulsos RPE
47...59 2
Pulsos RPE 64...76 2
Posición de GRID 11,28,45,62
0
Amplitud de bloque 12,29,46,63 1
Pulsos RPE 13...25 1
Pulsos RPE
30...42 1
Pulsos RPE 47...59 1
Pulsos RPE 64...67 1 ...dl81,
Pulsos
RPE 68...76 1 dl82
Log area ratio 1 1 0
Log area ratio 2,3,5 2,3,5 1
Log
area ratio 7 7 0
Log area ratio 8 8 1
Log area ratio 8,3 8,3 0
Log area
ratio 4 4 1 II
6 Log area ratio 4,5 4,5 0
Amplitud de bloque 12,29,46,63
0
Pulsos RPE 13...25 0
Pulsos RPE 30...42 0
Pulsos RPE 47...59
0
Pulsos RPE 64...76 0
Log area ratio 2,5 2,5 0
Tabla 3.1: Importancia subjetiva de los bits codificados.
En la figura 3.2 se observa el proceso de codificación. A los 50 primeros bits (grupo Ia), que son los más importantes, se les aplica un código de redundancia cíclica de 3 bits, teniéndose como resultado 53 bits. Estos bits junto con los 132 bits siguientes (grupo Ib), más 4 bits de cola, hacen un total de 189 bits. A éstos se les aplica un código convolucional con lo que se obtienen 378 bits de salida, que sumados con los 78 bits que forman el grupo II, y que no llevan ninguna protección, hacen un total de 456 bits cada 20 ms, lo que da una velocidad de salida de 22.8 kbps.
Figura 3.2.- Proceso de codificación
A continuación se describen con más detalle cada una de las dos codificaciones de los que se componen la codificación del canal.
3.1.- Chequeo de Redundancia Cíclica (CRC)
El CRC es una de las herramientas más comunes y potentes para la detección de errores. Este consiste en considerar los bits de entrada como los coeficientes de un polinomio. Se utiliza el llamado "polinomio generador" compartido por el emisor y el receptor. La idea es construir con el polinomio de entrada un segundo polinomio que sea divisible por el polinomio generador. El mensaje que se transmite es el polinomio calculado. El polinomio recibido si no ha sufrido errores seguirá siendo divisible por el polinomio generador. Si no es divisible, es que se han producido errores
Dado un bloque de datos de k bits, el transmisor genera una secuencia de m bits, de forma que la trama resultante está formada por los k bits más los m bits generados. El código permite detectar todas las ráfagas de error que afectan a m bits, además de detectar todas las ráfagas que afecten a un número impar de bits.
3.2.- Códigos Convolucionales
El código CRC acepta un mensaje de k bits y genera una palabra código de n bits. Es decir, se debe 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 sería necesario el uso de "buffers" de tamaño considerable para almacenar momentáneamente los bloques a codificar. Para evitar el uso de estos "buffers", en los casos en los que los bits del mensaje entran en forma serie es preferible el uso de la codificación convolucional[8].
Las operaciones que se llevan a cabo sobre los k bits de entrada se pueden ver como la convolución discreta en el tiempo de la entrada con la respuesta impulsiva del codificador.
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), 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

Normalmente, se tiene que L>>M. Por lo tanto, la velocidad se simplifica como

La profundidad de un código convolucional, expresado en términos de los bits de mensaje, se define como el número de desplazamientos en los que influye 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 3.3.- Ejemplo de un codificador convolucional de razón 1/2 y profundidad 3.
La figura 3.3 muestra un codificador convolucional con n = 2 y K = 3. Por tanto, la razón del codificador es 1/2.
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 3.3 tiene una razón de ½, por tanto se necesitan 2 respuestas impulsivas para caracterizar su comportamiento en el dominio del tiempo.
En el dominio de la transformada, las respuestas impulsivas se representan por polinomios generadores y el resultado se obtiene por multiplicación, por lo que se facilita el cálculo.
Las propiedades de un codificador convolucional se pueden observar gráficamente de varias formas: árbol, trellis, o diagrama de estados[8]. El trellis del ejemplo de la figura 2.16 se muestra en la figura 3.4, donde se puede apreciar los cuatro posibles estados (a, b, c y d) y las transiciones entre estados. Las líneas continuas corresponden a un bit de entrada cero y las discontinuas a un bit de entrada uno. Los dos valores junto a cada línea corresponden a la salida del codificador convolucional. Así por ejemplo, si se está en el estado a y llega un cero, se pasa al estado a y como salida se tiene 00.

Figura 3.4.- Parte central del trellis del codificador de la figura 3.3
La deconvolución de la secuencia de entrada se realiza mediante el "algoritmo de Viterbi"[8].
Este método elige el camino en el trellis que difiere en el menor número posible de bits de la secuencia recibida. Para su implementación se define la distancia de un camino particular como el número de bits en que difieren la secuencia producida por ese camino y la secuencia recibida. En la decodificación se compara para cada estado los dos posibles caminos que llegan al nodo y se retiene el camino que tenga una distancia menor, descartándose el otro camino. Si se tienen distancias iguales se elige aleatoriamente uno.
3.3.- Entrelazado ("Interleaving")
El entrelazado de bits consiste en una reorganización de la ordenación de una secuencia de símbolo binarios o no binarios de una forma determinística y única. Los códigos convolucionales o de bloque se diseñan para combatir errores independientes aleatorios, que ocurren normalmente en canales sin memoria. Para los canales con memoria se observa que las ráfagas de error se deben a la transmisión de señales dependientes. El entrelazado se utiliza para dispersar las ráfagas de error y para reducir la concentración de errores que se deben corregir por el código del canal.
La idea que hay detrás del entrelazado es separar los símbolos de las palabras código en el tiempo. A medida que se aumenta el período de entrelazado se consigue dispersar más las ráfagas de error. Pero por el contrario se aumenta el retardo debido al entrelazado. Por lo tanto se ha de conseguir un compromiso entre retardo y el rendimiento en cuanto a corrección de errores.
3.4.- Codificación del Canal en GSMEl codificador de voz entrega al codificador del canal una secuencia de bloques de datos. Cada bloque de datos corresponde a una trama de voz y contiene 260 bits de información. Estos bits se reordenan según la tabla 3.1 en los 182 bits de la clase I (bits a proteger) y los 78 de la clase II (sin protección). A continuación se detallan las operaciones que se llevan a cabo en el codificador del canal sobre estos bits reordenados.
3.4.1.- CRC en GSM
En el caso de GSM se usa el polinomio generador g(D)=D3+D+1, (ver figura 3.5) por lo que se tienen tres elementos de memoria con tres lazos de realimentación. Por lo tanto se obtienen 3 bits de paridad al final del proceso. Para limpiar el registro de desplazamiento se añaden 3 bits.

Figura 3.5.- Registro de desplazamiento para el CRC de GSM
Los mensajes introducidos tienen una longitud de 50 bits, y la salida son 3 bits, que se añaden al final de éstos.
A continuación los bits de clase I y los de paridad se reordenan y se les incorporan los bits de relleno, que limpian los registros de desplazamientos del codificador convolucional una vez introducidos todos los datos. Como resultado se tienen 189 bits, reordenados con las siguientes expresiones, donde d(k) son los bits de datos de la clase I y p(k) son los bits de salida del CRC.
u(k)=d(2k) y u(184-k)=d(2k+1) para k=0,1,...,90
u(91+k)=p(k) para k=0,1,2
u(k)=0 (bits de relleno) para k=185, 186, 187,188
3.4.2.- Código convolucional en GSM
El código convolucional que GSM aplica proviene de un codificador de razón 1/2 y de profundidad K = 5. Los dos polinomios generadores son:
g(1)(D)= 1 + D3 + D4
g(2)(D)= 1 + D + D3 + D4
cada término del polinomio corresponde a un contacto en el diagrama de bloques del codificador de la figura 3.6. Se observa que se tienen dos caminos, ya que el rate es 1/2, y el multiplexor es de 2 a 1. Al ser M = 4, se tienen cuatro elementos de retardo unitarios.

Figura 3.6.- Diagrama de bloques del codificador convolucional de GSM
Como el código tiene memoria 4, se tienen ahora 24 estados. En la figura 3.7 se representa la parte central del trellis del codificador convolucional de GSM.
El resultado de esta operación es un bloque de 378 bits que junto a los 78 bits sin protección de la clase II dan como resultado el bloque estándar de 456 bits.

Figura 3.7.- Parte estable del trellis de GSM
3.4.3.- "Interleaving" en GSM
Para minimizar el efecto de los desvanecimientos súbitos de los datos recibidos, el total de 456 bits se dividen en 8 sub-bloques de 57 bits con las siguientes expresiones:
i(B, j)= c(n,k)
donde k=0,1,...,455 es el índice de los bits en la trama codificada número n, B=4n+[k mod 8] es el índice del sub-bloque y

es el índice de los bits en los sub-bloques entremezclados de 57 bits.
3.4.4.- Proyección en una ráfaga física
Los 8 sub-bloques que forman una trama simple de voz, se esparcen a través de 8 slots consecutivos de un canal de tráfico TCH ("Traffic CHannel")[6]. Los slots son ventanas en el tiempo y en la frecuencia de duración finita, en donde se envían las llamadas ráfagas ("burst"). Si se pierde una ráfaga debido a las interferencias o a los desvanecimientos, la codificación del canal asegura que se disponen de suficientes bits para decodificar la secuencia correcta, si se tiene una decodificación como el algoritmo de Viterbi.
En la figura 3.8 se muestra el contenido de una ráfaga normal, que se son las que se utilizan en la transmisión de la señal de voz. Existen otros tipos de ráfagas que se utilizan para la transmisión de información de control y señalización[6].
Figura 3.8.- Contenido de una ráfaga normal
Cada ráfaga normal lleva dos bloque de datos de 57 bits de dos tramas de voz consecutivas. En las posiciones pares se tienen los bits de información de una trama y en los impares los bits de la otra trama. Además se incorporan otros dos bits más: los indicadores de robo de trama ("stealing flag"). Estos están a cero a menos que las tramas contengan datos de señalización del canal FACCH [6]. Esto hace un total de 58 bits de información por cada trama.
La secuencia de entrenamiento es una secuencia de bits conocida por el receptor. Existen ocho secuencias diferentes y permiten al receptor determinar muy precisamente la posición de los bits útiles de la trama dentro de los slots. Además permiten conocer la distorsión introducida por el canal de radio.
Finalmente se tienen tres bits de cola en ambos extremos que se ponen a cero.
Los 456 bits de una trama se transmiten en las ocho ráfagas según la tabla 3.2.
Tabla 3.2 Algoritmo de "interleaving"
4.- Modulación Digital en GSM
Debido a las características del canal de radio, el sistema de modulación usado en GSM debe tener una alta eficiencia espectral y presentar una fuerte resistencia frente a los efectos nocivos que introduce el canal de radio. El grupo de esquemas de modulación con fase continua y envolvente constante se usa mucho en sistemas con atenuación variable[1] debido a su robustez frente a las interferencias y la atenuación, mientras mantiene una buena eficiencia espectral. Cuanto más lentos y suaves sean los cambios en la fase, mejor es la eficiencia espectral. Un miembro de esta familia es "Gaussian Minimum Shift Keyng" (GMSK)[9]. Se deriva del "Minimum Shift Keyng" (MSK)[10], en el que los cambios de fase entre bits contiguos son lineales por trozos, por lo que se tienen cambios instantáneos en la frecuencia. Esto ensancha el espectro, por lo que se usa GMSK en el que se suaviza la fase con un filtro Gaussiano.
El parámetro de GMSK que controla el ancho de banda y la resistencia a las interferencias es el producto del ancho de banda de 3 dB (B)por la duración de un bit (T). El mejor rendimiento se obtiene para BT=0.3, aunque éste produce un solapamiento no despreciable entre canales de frecuencias adyacentes. Esto introduce interferencias que se pueden minimizar separando geográficamente el uso de frecuencias adyacentes.
4.1.- Modulación MSK ("Minimum Shift Keying")
MSK es un tipo especial de esquema de modulación FSK ("Frecuency Shift Keying")[10], con fase continua y un índice de modulación de 0.5. El índice de modulación de una señal FSK es similar al de FM, y se define por kFSK= (2D F)/Rb, donde 2D 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 que dos señales FSK sean ortogonales coherentes, y el nombre MSK significa la mínima separación en frecuencia que permite una detección ortogonal.
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[10]:

donde
y
son los bits
pares e impares de la 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

donde f k es 0 ó p dependiendo de sí 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. La fase de la señal MSK varía linealmente durante el transcurso de cada período de bit.
La Figura 4.1 muestra un modulador y demodulador típico MSK. Multiplicando una señal portadora por cos[p t/2T], se producen dos señales coherentes en fase a las frecuencias fc+1/4T y 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 pares, mI(t) y mQ(t) para producir la señal modulada MSK sMSK(t).

Figura 4.1.- Diagrama de bloques de un modulador y demodulador MSK
En el receptor (demodulador) de la figura 4.1, 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 períodos. 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.
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. En GMSK, los lóbulos laterales del espectro de una señal MSK se reducen pasando los datos modulantes a través de un filtro Gaussiano de premodulación. El filtro gaussiano aplana la trayectoria de fase de la señal MSK y por lo tanto, estabiliza las variaciones de la frecuencia instantánea a través del tiempo. Esto tiene el efecto de reducir considerablemente los niveles de los lóbulos laterales en el espectro transmitido.
El filtrado convierte cada dato modulante que ocupa en banda base un período de tiempo T, en una respuesta donde cada símbolo ocupa varios períodos. 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 introduce interferencia intersimbólica ISI ("Inter-Symbol Interference") en la señal transmitida, pero esta degradación no es grave si el parámetro BT del filtro es mayor de 0.5. Debido que en GSM se tiene que BT es 0.3, se tienen algunos problemas de ISI y es por ello la señal no es totalmente de envolvente constante.
El filtro gaussiano de premodulación tiene una respuesta impulsiva dada por[9]:

y su respuesta en frecuencia viene dada por

El parámetro a está relacionado con el ancho de banda del filtro B, por la siguiente expresión

y el filtro GMSK se puede definir completamente por B y por la duración de un símbolo en banda base T o equivalentemente por su producto BT. La Figura 4.2 muestra la PSD de una señal GMSK para varios valores de BT. Se muestra también la PSD ("Power Spectral Density")de una señal MSK, que es equivalente a GMSK con BT infinito. En la figura se observa como conforme se reduce el parámetro 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 la ISI, y por lo tanto se incremente el número de errores ("bit-error rate"), pero a pesar de este efecto el rendimiento global del sistema mejora.

Figura 4.2 . - 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 a través de un filtro gaussiano paso baja como los descritos anteriormente, seguido de un modulador de FM. Esta técnica de modulación se muestra en la figura 4.3 y se usa actualmente en una gran cantidad de implementaciones analógicas y digitales, entre ellas en GSM.

Figura 4.3.- Diagrama de bloques de un transmisor GMSK usando generación directa de FM
Las señales GMSK se pueden detectar usando detectores ortogonales coherentes como se muestran en la figura 4.4 (parte superior), o con detectores no coherentes como los discriminadores normales de FM. La recuperación de la portadora se puede realizar usando el método propuesto por de Buda [9] 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 se muestra en la figura 4.4 (en la parte inferior). Los dos elementos de retardo tipo D actúan 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 elementos de retardo, y la frecuencia central del VCO (Oscilador controlado por tensión) se elige como cuatro veces la frecuencia central de la portadora.
Un método no óptimo pero efectivo de detectar señales GMSK es simplemente muestrear la salida de un demodulador de FM.

Figura 4.4.- Diagrama de bloques de un receptor GMSK (parte superior) y de un circuito digital para la demodulación de señales GMSK (parte inferior)