Roque Senz Pea 180 (B1876BXD) Bernal Buenos Aires Argentina
Cdigos convolucionales 1
COMUNICACIN DE DATOS
CDIGOS CONVOLUCIONALES
Como ltimo tema referido a los cdigos detectores y correctores de error estudiaremos los cdigos convolucionales. Hasta ahora hemos estudiado cdigos de bloque. stos reciben este nombre en virtud de que estn constituidos por bloques bien definidos de longitud fija (dado un cierto cdigo). Es decir que, contamos con una aparatito que recibe k bits a su entrada y entrega n bits a su salida, existiendo una relacin biunvoca entre la secuencia de k bits de mensaje y la secuencia final de n bits. Adems, en el caso de los cdigos sistemticos, tambin queda bien definida, dentro del bloque, cul es la parte del mensaje y cul es la parte redundante o de bits de paridad. Los cdigos convolucionales se describen normalmente mediante tres nmeros enteros, n, k, y K, en donde k/n sigue siendo la tasa de cdigo al igual que en los cdigos de bloque. Sin embargo, a diferencia de estos ltimos, n no define la longitud de bloque de un cdigo convolucional. De hecho, la caracterstica distintiva de los cdigos convolucionales es que no tienen un formato de bloque y por lo tanto no tienen una longitud de bloque. El entero K indica el nmero de registros de desplazamiento que forman el codificador. Como veremos ms adelante, la caracterstica del cdigo convolucional es que la salida del codificador no slo depende de los k bits de entrada sino de los K 1 bits precedentes. Un codificador convolucional se puede construir con K registros de desplazamiento y n sumadores en mdulo 2, como se muestra en la Figura 1. Por cada unidad de tiempo que pasa entran al registro k bits y simultneamente se produce k desplazamientos hacia la derecha de los bits que ya estn dentro de los registros. Las salidas de los sumadores son muestreadas secuencialmente produciendo el cdigo de salida. Ya que por cada k bits que entran en el registro salen n bits, resulta que la tasa de cdigo es k/n, con k < n.
Figura 1. Codificador convolucional. 2 Cdigos convolucionales
A fin de simplificar el desarrollo del tema utilizaremos k = 1, que por otra parte pertenece al codificador convolucional ms comn. Representacin del codificador convolucional La descripcin de un cdigo convolucional puede hacerse de varias maneras. Conexin de vectores o polinomios, diagrama de estado, diagrama de rbol y diagrama trellis son los esquemas utilizados.
Figura 2. Codificador convolucional (tasa , K = 3).
Para discutir este tema utilizaremos el esquema de la Figura 2 como modelo. La figura muestra un codificador (2, 1) con K = 3. Hay n = 2 sumadores en mdulo 2 y como k = 1 la tasa de cdigo es k/n = . Cada vez que ingresa un bit se produce un desplazamiento, de un lugar, de izquierda a derecha. Seguidamente, la llave de la salida muestrea la salida de cada sumador (por ejemplo, primero el de arriba, luego el de abajo) formando el cdigo de salida. Por cada bit que ingresa este cdigo est formado por u 1 y u 2 , como se muestra en la Figura 2. Este proceso entonces se repite por cada bit de entrada. La eleccin de las conexiones de los sumadores le da una caracterstica definida al codificador. Desde luego, esta eleccin no se hace en forma arbitraria sino que se hace de manera conveniente para obtener buenas propiedades de distancia entre los cdigos generados, cosa que no es para nada sencilla y que normalmente requiere soluciones asistidas por computadoras. Una manera de representar el codificador es especificando un conjunto de n vectores de conexin, o sea, un vector de conexin por cada sumador. Cada vector tiene dimensin K y describe las conexiones de los registros con los sumadores. Un 1 en la i-sima posicin del vector indica que el i-simo registro est conectado al sumador. Un 0 en tal posicin indica que ese registro no est conectado a ese sumador. Por ejemplo, los vectores que describen al codificador de la Figura 2, son
101 111 2 1 = = g g
donde g 1 describe a la rama superior y g 2 describe a la rama inferior. Supongamos que el mensaje m = 101 ingresa al codificador. Los tres bits que conforman este mensaje (en realidad, y esto no hay que perderlo de vista, es un fragmento de una secuencia de bits de longitud indefinida) ingresan de a uno a la vez, en los tiempos t 1 , t 2 y t 3 , como se muestra en la Figura 3. Al final de la secuencia, en los tiempos t 4 y t 5 , ingresan dos ceros para permitir el ltimo 1 del mensaje m pueda llegar hasta el registro K. La secuencia de Cdigos convolucionales 3 salida obtenida es 1110001011, donde los bits de ms a la izquierda se corresponden a los bits de mensaje que ingresaron primero.
Figura 3. Secuencia de codificacin para el codificador convolucional de la Figura 2. Tambin es posible ver el codificador en trminos de su respuesta impulsiva, es decir la respuesta a una entrada que es un solo bit 1 que se mueve a travs de los registros, 4 Cdigos convolucionales completado con los ceros necesarios. Teniendo en cuenta esto y considerando otra vez el codificador de la Figura 2, los registros y la salida varan de la siguiente manera: Registros u 1 u 2
100 1 1 010 1 0 001 1 1
Secuencia de entrada: 1 0 0 Secuencia de salida: 11 10 11
La secuencia de salida correspondiente a esta entrada 1 se llama respuesta impulsiva del codificador. Luego, para conocer la salida correspondiente al mensaje de entrada m = 101, se debe hacer la suma superpuesta del producto entrada por respuesta impulsiva, de la siguiente manera: Entrada m Salida 1 11 10 11 0 00 00 00 1 11 10 11 Suma 11 10 00 10 11
Ntese que la salida obtenida es igual a la de la Figura 3. El resultado de la tabla anterior da cuenta de por qu estos cdigos se llaman convolucionales (la operacin hecha en dicha tabla es una convolucin) y pone de manifiesto que se trata de un cdigo lineal. Tambin hay que observar en la Figura 3 que a una entrada de tres bits le correspondi una salida de 10 bits, es decir que k/n = 3/10, bastante menos que , que es lo que debera ser. La razn de esta diferencia est en el agregado de dos bits al final para permitir que el mensaje de entrada recorra por completo a los tres registros de este codificador. Si el mensaje es mucho ms largo (como en realidad deben ser tratados los codificadores convolucionales) entonces la relacin entre bits de entrada y bits de salida s tiende al valor . Representacin polinomial Otra manera de representar al codificador es mediante polinomios, similarmente al caso de cdigos cclicos. En este caso la representacin se hace mediante n generadores polinomiales, uno para cada sumador. Cada polinomio es de grado K 1 menos y describe la conexin de los registros de desplazamiento con los sumadores, de manera parecida a los vectores de conexin. El coeficiente de cada trmino del polinomio es 1 0, segn haya o no haya conexin con el sumador, respectivamente. Una vez ms para el codificador de la Figura 2, la representacin es:
2 2 2 1 1 1 X X X + = + + = g g
El trmino de menor grado corresponde al registro de entrada. La secuencia de salida se obtiene haciendo: ) ( ) ( con o intercalad ) ( ) ( ) ( 2 1 X X X X X g m g m U = Siguiendo con el ejemplo de la Figura 2 la operacin sera: Cdigos convolucionales 5
11 10 00 10 11 ) 1 , 1 ( ) 0 , 1 ( ) 0 , 0 ( ) 0 , 1 ( ) 1 , 1 ( ) ( 0 0 0 1 ) ( ) ( 0 1 ) ( ) ( 1 ) 1 )( 1 ( ) ( ) ( 1 ) 1 )( 1 ( ) ( ) ( 4 3 2 4 3 2 2 4 3 2 1 4 2 2 2 4 3 2 2 1 = + + + + = + + + + = + + + + = + = + + = + + + = + + + = U U g m g m g m g m X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
Representacin con diagrama de estados El estado de un codificador convolucional de tasa 1/n est representado por el contenido de los K 1 registros de ms a la derecha. El conocimiento de este estado ms el conocimiento del bit de entrada son suficientes para determinar la salida y el estado siguiente. Para el ejemplo que nos ocupa existen cuatro estados posibles, ya que K 1 = 2. En el diagrama de estados, por convencin los estados de transicin se indican con una lnea continua cuando la entrada es un 0 y con una lnea punteada cuando la entrada es un 1. Por cada estado de transicin se indica adems la salida correspondiente. En nuestro caso, el diagrama de estados queda como lo muestra la Figura 4.
Figura 4. Diagrama de estados para el codificador de la Figura 2.
Puede verse en la Figura 4 que existen solamente dos estados de transicin posibles para cada estado, correspondientes a los dos valores posibles de los bits de entrada. Tambin puede verse que hay transiciones que no son posibles, como por ejemplo del estado 00 al 11. Diagrama de rbol Aunque el diagrama de estado describe completamente al codificador, no hace una representacin en funcin del tiempo. Es decir, con la observacin del diagrama de estados no es posible determinar cul es la secuencia de salida del codificador. Para darle una dimensin temporal, se recurre al diagrama de rbol, cuyo ejemplo para el codificador de la Figura 2 se ve en la Figura 5. Por cada bit de entrada se manifiesta un movimiento hacia la derecha en el diagrama de rbol. Cada rama del rbol indica la salida del codificador. Este diagrama es construido a partir del diagrama de estados. Una vez construido el diagrama de rbol se puede 6 Cdigos convolucionales armar el recorrido para determinar la secuencia de salida correspondiente a una determinada entrada.
Figura 5. Diagrama de rbol para el codificador de la Figura 2.
Estando en un estado determinado (a, b, c d para este ejemplo), la regla es moverse hacia abajo cuando el bit de entrada es un uno o moverse hacia arriba cuando el bit de entrada es un cero, siempre avanzando hacia la derecha. Si suponemos que el estado inicial es cero, para este ejemplo, entonces partimos del estado a de ms a la izquierda. Si suponemos que el mensaje de entrada es m = 11011 y nos movemos dentro del rbol segn la regla descripta, obtenemos el camino resaltado en negro en la Figura 5, que nos da la secuencia de salida U = 1101010001. Cdigos convolucionales 7 Indudablemente, la gran dificultad que presenta el diagrama de rbol es el crecimiento exponencial del nmero de ramas. Ms an, si la secuencia de entrada tiene L bits el nmero de ramas es de 2 L . Diagrama trellis Observando el diagrama de rbol de la Figura 4 puede verse que para este ejemplo, a partir del tiempo t 4 las sucesivas divisiones de las ramas comienzan a ser iguales. Es decir que la estructura se repite (en general comienza a repetirse luego de K ramas o avances hacia la derecha). En la figura se han etiquetado los cuatro estados posibles como a = 00, b = 10, c = 01 y d = 11. La primera rama del rbol, en t 1 , produce dos nodos, a y b. Por cada rama nueva el nmero de nodos se duplica. Despus del tercer desplazamiento hay un total de 8 nodos: dos a, dos b, dos c y dos d. Se puede observar que, a partir de aqu, cada rama que nace de nodos con iguales etiquetas (iguales estados) generan la misma secuencia de salida. Es decir que, a partir de este punto (t 4 en este caso) la mitad superior del rbol es igual a la mitad inferior, por lo tanto es indistinto estar en el mismo estado en la parte superior o en la parte inferior. Esta situacin sugiere la idea de dibujar slo una mitad del rbol, a partir de t 4 . El resultado es la obtencin de un nuevo tipo de diagrama llamado trellis 1 . El diagrama trellis para el codificador de la Figura 2 se muestra en la Figura 6.
Figura 6. Diagrama trellis para el codificador de la Figura 2.
Para dibujar el trellis usamos la misma convencin que para el diagrama de estados. Una lnea continua implica la entrada de un 0 y una lnea punteada significa la entrada de un 1. Los nodos del trellis corresponden a los estados del codificador: la primera fila corresponde al estado a = 00, la segunda al estado b = 10, etc. Los nmeros encima de las ramas del trellis indican la salida producida durante ese estado de transicin.