Facultad de Ingeniería Ingeniería Electrónica y Telecomunicaciones Laboratorio Sistemas de comunicación Dario Xavier Caguana Buele
[email protected]
___________________________________ Codificación Convolucional 1.- INTRODUCCIóN Un sistema de comunicaciones tiene como meta enviar y recibir datos de manera confiable y sin errores,por lo general el error dentro de un mesaje es introducido debido al ruido que ingresa al canal, para manterner un envio de datos confiable tenemos 2 formas de lograr esto:
La primera un sistema de mensajes de confirmacion o de error entre emisor y receptor, pero esto toma tiempo y mantiene ocupado al canal. La segunda es que el emisor detecte si hubo un error y pueda recuperar el mensaje mediante tecnicas (Codificacion).
Obviamente la segunda es la mejor opcion porque no satura el mensaje canal con mensajes de confirmacion, para esto es necesario añadir redudancia al mensaje. Una de las tecnicas mas empleadas en el proceso de codificacion , es la convolucional en conjunto con la decodifcacion de Viterbi, esta combinacion es especialmente mente util cuando modelados un canal cuyo ruido es del tipo (AWGN) aleatorio aditivio y guassiano, aunque tambei existen canales de comunicación cuyo ruido proviene de fenomenos como reflexiones, fenomenos atmosfericos, interferencia, etc. La codificacion convolucional ha sido durante mucho tiempo la tecnica usada en comunicaciones espaciales como VSAT, otro uso importante es la
telefonia GSM para este caso la codificacion convolucional se complementa con algua otra tecnica.
2.- MARCO TEóRICO La codificación de canal consiste en añadir redundancia para lograr una trasmisión fiable de la información. Los códigos convolucionales son códigos lineales, donde la suma de dos palabras de código cualesquiera también es una palabra de código. El sistema tiene memoria: la codificación actual depende de los datos que se envían ahora y que se enviaron en el pasado.
Fig. 1 Digrama de bloques de un sistema de comunicaciones.
Los códigos convolucionales se describen a partir de ciertos elementos: La tasa del código (k/n): es la relación entre el número de bits que entran al codificador (k) y el número de bits que se obtienen a la salida del codificador (n).
R=
k n
La longitud del código (K): denota en cuántos ciclos de codificación tiene influencia un bit que tengamos a la entrada de este. La memoria del codificador(m): que precisamente es el número de flip-flops que contiene el codificador. Por último, los polinomios generadores son también muy importantes a la hora de definir el funcionamiento de un codificador convolucional. Funcionamiento: La codificación convolucional sigue un sencillo proceso: se basa en un registro de desplazamiento (mediante la concatenación de una serie de flips-flops,) y una lógica combinacional encargada de la suma en módulo 2.
La lógica combinacional que realiza la suma en módulo 2, utiliza compuertas XOR.
Fig. 2 Diagrama de codificador convolucional con longitud 3 y una velocidad de 2.
Proceso de decodificacion. El proceso de decodificación consiste en buscar un la secuencia de bits más probable (si no hay errores obtendremos la secuencia exacta). El codificador convolucional añade una estructura a la secuencia de bits. Incluso aunque la entrada sea totalmente aleatoria, se fuerza a que la salida siga unas determinadas secuencias. Esta restricción es la que da la capacidad correctora a los códigos convolucionales. El procedimiento de decodificación es equivalente a comparar la secuencia recibida con todas las posibles secuencias que pueden obtenerse con el correspondiente codificador y seleccionando la secuencia que está más próxima a la secuencia recibida. Algoritmo de Viterbi La codificación convolucional se decodifica con ayuda del algoritmo de Viterbi Paso 1: en el nivel j, calcular la distancia de Hamming de cada camino entrante en cada nodo (estado) desde el nodo del nivel j-1 hasta el nodo del nivel j a través del camino superviviente. Paso 2: para cada nodo (estado) del diagrama de Trellis en el nivel j, descartar todos los caminos que entran en el nodo, excepto el de distancia mínima. Cuando a un nodo llegan dos caminos con la misma distancia se toma el superior.
Paso 3: pasar al nivel j+1 y repetir los pasos 1 y 2. Estos pasos se aplican para j mayor o igual que 2. Hasta ese valor se expanden los caminos. 3.- RESULTADOS Se implemetno una simulacion de un sistema de comunicación que utiliza un sistema de codificacion convolucional mediante el software LABview NI. El sistema implementado presetna los bloques basicos de cualquier sistema,un bloque emisor subdivido en, subbloques de DSP, Codificacion y Modulacion; un canal ruidoso y un bloque de Receptor subdivido en proceso Demodulacion Decodificacion y DSP. El Emisor transmitira un secuencia de 17 bits, 16 bits (2 bytes) de informacion y 1 bit de control, estos bits sera codificados de forma convolucional, basandose en parametros como k, n, K ingresados por el usuario por otro lado la parte de procesamiento digital de la señal sera omitida, asi mismo sera obviada la parte de la modulacion. El canal simulara ruido en esto alterando el valor 2 bits cualesquiera del tren de bits que transmite. Al Receptor llegara el mismo numero de bits que fue enviado desde el emisor, con la diferencia de que tendra 2 bits con valor alterado. Este bloque debe ser capaz de decodifcar el mensaje contaminado de ruido y obtener el mensaje original, para poder decir que el canal decodificacion fue exitosa. Aunque el algoritmo es bastnate bueno veremos casos en que su sola implementacion no proporciona los mejores resultados.
Para este caso se ingreso la secuencia ademas de 1 para redudacia.
1010101010101010
El mensaje se codifica y se convierte en
0001000100010001000100010001000100 En la siguiente fase se alteran los valores de los bits 2 y 7 dado como resultado
0011000000010001000100010001000100 A pesar de esto el receptor es capaz de el mensaje original.
1010101010101010
Para un segundo ejemplo vamos a cambiar 2 bits cosecutivos.
El mensaje actual es el complemento a 1 del anterior:
A este mensaje lo codificamos obteniendo el siguiente codigo:
01010101010101010 1111010001000100010001000100010001
Ahora vamos a alterar los bits 6 y 7 ambos seteados en 1, quedadno el codigo de la forma:
1111011101000100010001000100010001 Y si a este lo decodoficamos, obtenemos:
0100000101010101 Como se mensaje no tolero que 2 bits consecutivos este errados, y por ende nos da un mensaje incorrecto con relacion al primero.
Unas solucion a este contratiempo es aumentar la complejidad con la que el algoritmo decodificala señal, este parametro se controla con la varible profundidad. Se utilizara el mismo codigo, y tambien los otros parametros seran los mismos. Lo unico que variaremos es la profundidad, la variamos hasta que el mensaje decodificado sea igual al anterior: Profundidad 2
Profundidad 3
Profundidad 4
Profundidad 5
Aunque recuperamos el mensaje original aumentado la profundidad del codigo, hemos perdido informacion, es decir 4 bits fueron perdidos; es notorio que el codigo tiene su detalles y no es infalible.
4.- CONCLUSIONES
Los codifiacion nos permite garantizar que la informacion enviada a traves de un canal es tolerante pero no infalible a errores. La codificacion ademas de hacer a la informacion mas robusta, nos permite usar un canal de manera mas eficiente. Los codigos covolucionales son muy efectivos bajo ciertas circunstancias, demuestran falencias en otros casos; estos casos son cuando 2 bits consecutivos se ven afectados por el error, aunque no es usual debe tomarse en cuneta. Para aumentar la efectividad de los codigos convolucionales, estos suele implementarse junto con otros algoritmos. La efectividad de un codigo convolucional puede ser mejorada aumentando la profundidad del codigo, lo que conlleva que que perdida de informacion.
5.- REFERENCIAS [1] “Codificación Convolucional y Decodificación de Viterbi - Algoritmos.” [Online]. Available: http://ma.alvarez0005.eresmas.net/trabajos/ccvsatelite/teoria.html. [2] W. Tomasi, G. Mata Hernnǹdez, y V. Gonzlǹez Pozo, Sistemas de comunicaciones electrnnicas. Naucalpan de Jurǹez: Pearson Educacinn, 2003.