INGENIEÍA ELECTRICA TEMA 7 ALGORITMO DE VITERBI La codificación convolucional se decodifica con ayuda del algoritmo de Viterbi. En la siguiente figura mostramos el algoritmo para la codificación del ejemplo. CODIFICADOR DE VITERBI En DVB se añade un mecanismo de corrección contra errores basado en un código convolucional. Un código convolucional 1/2 quiere decir que de cada bit de entrada al codificador, salen dos (redundancia del 50%). En recepción, el descodificador convolucional se basará en el algoritmo de Viterbi. Este sistema se puede adecuar a otros códigos: 2/3, 3/4, 5/6, 7/8. La manera de especificar las características del codificador de Viterbi es mediante el FEC (Forward Error Correction). Por ejemplo, un FEC de 3/4. El codificador de Viterbi, a diferencia del codificador Reed-Solomon, garantiza protección a nivel de bit. MARCELO ALTAMIRANO INGENIEÍA ELECTRICA TEMA 7 Sirvan las siguientes tablas como un ejemplo teórico de codificación DECODIFICADOR VITERBI El decodificador Viterbi es virtualmente la contraparte del decodificador convolucional y no existe, por consiguiente, ningún decodificador convolucional. Además, un decodificador Viterbi es mucho más elaborado que un codificador convolucional. Fig. 07. Corrección de errores mediante el algoritmo de Viterbi. El algoritmo de Viterbi permite la corrección de errores. A cada paso de decodificación son posibles solo 2 caminos de los 4 existentes. Cada camino en el diagrama de árbol MARCELO ALTAMIRANO INGENIEÍA ELECTRICA TEMA 7 que se puede efectuar acumula un número de errores creciente con excepción del camino correcto que tiene el mínimo número de errores y por ello la máxima probabilidad de ocurrencia. CODIFICACIÓN REED-SOLOMON Esta codificación busca obtener protección del paquete de datos en frente de errores en la transmisión. Una vez aleatorizada la señal, esta se pasa por un codificador Reed Solomon, que es de todos los códigos cíclicos el más óptimo (máxima capacidad por corregir errores). Este código añade bits de redundancia a la información, de forma que el receptor, en función de estos bits, es capaz de detectar si ha habido algún error y, en el supuesto de que sea, corregirlo. En este proceso, a los 188 bytes el codificador añade 16 bytes de redundancia de forma que a la salida hay 204 bytes. Esta capacidad de corrección es posible siempre y cuando el número de errores no sea muy elevado. Con este sistema se puede conseguir corregir errores de hasta 8 bytes. CODIFICACIÓN EXTERNA (REED-SOLOMON) Localización del bloque en el sistema MARCELO ALTAMIRANO INGENIEÍA ELECTRICA TEMA 7 Objetivo y relación con el estándar Para permitir la corrección de errores, FEC, en la recepción, se introduce una cierta redundancia en la estructura de los paquetes de transporte, procedimiento que se conoce como codificación. La codificación llamada "externa" se emplea en todos los estándares DVB y se complementa con otra llamada "interna" en el caso de los estándares de transmisión vía terrestre. La "codificación externa" usada es de tipo Reed-Solomon, RS (204, 188, t=8), que es una versión acortada de la codificación original RS (255, 239, t=8), mediante la cual se añaden 16 bytes de paridad a los iníciales 188 bytes de cada paquete de transporte, dando como resultado un paquete protegido contra errores con la estructura que se muestra en la figura. SYNCI 0 187 bytes de datos 16 bytes paridad SYNCCo Estructura del paquete de transporte protegido contra errores En estas condiciones pueden corregirse hasta un total de 8 bytes erróneos, de ahí la denominación de código: RS(20,188,t=8). La forma acortada se realiza añadiendo primeramente 51 bytes nulos delante de los 188 bytes de información, con lo que se obtienen 239 bytes con los 188 bytes iníciales del paquete TS. Al pasar por el codificador RS(255,239,t=8) se añaden los 16 bytes de paridad, por lo que se obtienen finalmente 255 bytes por cada paquete TS. Finalmente se eliminan los 51 bytes nulos insertados inicialmente con lo que resultan los 204 bytes para cada paquete de transporte afectado por la codificación externa (Outer Interleaver) MARCELO ALTAMIRANO