codificador de viterbi para television digital terrestre.docx

16
CODIFICADOR DE VITERBI PARA TELEVISION DIGITAL TERRESTRE: DECODIFICADOR DE VITERBI Y REED SOLOMON Codificador de Reed-Solomon E l c o d i f i c a d o r R e e d - S o l o m o n c u e n t a c o n u n comportamiento definido en el campo de Galois; una palabra de código Reed- Solomon es generada usando un polinomio especial [2-3]. Todas las palabras de código válidas son divisibles exactamente por el polinomio generador. El diseño de un dispositivo para implementar un código Reed-Solomon RS(204,188,16) con símbolos de 8 bits, en el cual cada palabra de código contiene 204 bytes de palabra de código, de los cuales 188 bytes son datos y 16 bytes son paridad, con símbolos de 8 bits de longitud, consta de una serie de pasos. e Figura 1. Estructura del codificador RS(204,188,16) Donde se observa cómo quedaría la arquitectura a configurar para tal aplicación donde la longitud de los registros de memoria será de 8 bits, se crearán 16 etapas para el RS(204,188,16) y se programarán las tabla que contienen la información de los productos en el campo de Galois para efectuar la operación entre los coeficientes y los datos de entrada. Codificador/Decodificador Exterior (Reed-Solomon) Es un código cíclico no binario y constituye una subclase de los códigos BCH. Los códigos cíclicos son una subclase de los códigos de bloque

Upload: rodrigo-harriague

Post on 21-Oct-2015

47 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: CODIFICADOR DE VITERBI PARA TELEVISION DIGITAL TERRESTRE.docx

CODIFICADOR DE VITERBI PARA TELEVISION DIGITAL TERRESTRE: DECODIFICADOR DE VITERBI Y REED SOLOMON

Codificador de Reed-SolomonE l c o d i f i c a d o r R e e d - S o l o m o n c u e n t a c o n u n comportamiento definido en el campo de Galois; una palabra de código Reed-Solomon es generada usando un polinomio especial [2-3]. Todas las palabras de código válidas son divisibles exactamente por el polinomio generador.

El diseño de un dispositivo para implementar un códigoReed-Solomon RS(204,188,16) con símbolos de 8 bits, en el cual cada palabra de código contiene 204 bytes de palabra de código, de los cuales 188 bytes son datos y 16 bytes son paridad, con símbolos de 8 bits de longitud, consta de una serie de pasos.

e

Figura 1. Estructura del codificador RS(204,188,16)

Donde se observa cómo quedaría la arquitectura a configurar para tal aplicación donde la longitud de los registros de memoria será de 8 bits, se crearán 16 etapas para el RS(204,188,16) y se programarán las tabla que contienen la información de los productos en el campo de Galois para efectuar la operación entre los coeficientes y los datos de entrada.

Codificador/Decodificador Exterior (Reed-Solomon)

Es un código cíclico no binario y constituye una subclase de los códigosBCH. Los códigos cíclicos son una subclase de los códigos de bloqueestándar de detección y corrección de errores que protege la informacióncontra errores en los datos transmitidos sobre un canal de comunicaciones.Este tipo de código pertenece a la categoría FEC (Forward Error Correction),es decir, corrige los datos alterados en el receptor y para ello utiliza unos bitsadicionales que permiten esta recuperación a posteriori.Los códigos Reed-Solomon se basan en un área especialista de laMatemática llamada campos Galois o campos finitos. Un campo finito tiene lapropiedad de que las operaciones aritméticas (+,-,x,/,etc.) en elementos delcampo siempre tienen un resultado en el campo. Un codificador odecodificador Reed-Solomon debe ser capaz de realizar estas operaciones

Page 2: CODIFICADOR DE VITERBI PARA TELEVISION DIGITAL TERRESTRE.docx

aritméticas.El codificador Reed-Solomon toma un bloque de información digital y añadebits redundantes. Los errores pueden ocurrir durante la transmisión oalmacenamiento de información por varios motivos como Ruido ointerferencia, etc. El decodificador Reed-Solomon procesa cada bloque eintenta corregir los errores y recuperar la información original. El número ytipo de errores que pueden ser corregidos depende de las características delcódigo Reed-Solomon.

SIMBOLO DESCRIPCION RANGO

s Numero de bits por simbolo Entero entre 3 y 16n Nùmero de simbolos por palabra códigoMensaje Total (Inicial + Paridad) Entero entre 3 y (2^s)-1kNumero de simbolos por mensajeMensaje Inicial Entero menor que nt Capacidad de correcciòn de errores (n-k)/2Como se muestra en la tabla 2.1 el total de Bytes de paridad es igual alMensaje Total menos Mensaje Inicial (n-k).Los procedimientos algebraicos de decodificación de Reed-Solomon puedencorregir bytes errados o perdidos. El decodificador puede corregir hasta terrores consecutivos.Un mejor esquema sobre el funcionamiento operativo del codificador deReed-Solomon es el que se muestra en la figura 2.1, donde se puedenapreciar a los registros denotados por b0,b1,…,bn-k-1. los valores g0, g1, gn-k-1,son lógicos y si el estado de gi (i=0,1,…,n-k-1) es “1” implica que ese ramalse encuentra habilitado, caso contrario se encuentra deshabilitado y no pasainformación por dicho ramal.

Page 3: CODIFICADOR DE VITERBI PARA TELEVISION DIGITAL TERRESTRE.docx

Figura 2.1 Diagrama de bloques de el codificador de Reed-Solomon.k(x), se denomina a la señal de información que ingresa a ser codificada, yn(x) a la señal de salida codificada. En el caso de DVB, el único coeficiente gi

que se encuentra habilitado es el g14 según el estándar.

Análisis descriptivo y propósito del Codificador de Reed-SolomonLa codificación de Reed-Solomon, intenta proteger la información atransmitir, permitiéndose corregir hasta un máximo de ‘t’ erroresconsecutivos. La codificación de la fuente envía paquetes de 188 bytes, loscuales entran a la etapa de codificación del canal, específicamente alcodificador de Reed-Solomon en primera instancia. Como ya se mencionóanteriormente, este codificador aumenta bytes a la trama, bytes redundantes

de información que según el estándar deben ser 16 bytes, para lograr así unatrama o palabra codificada de una longitud de 204 bytes.El codificador externo tiene como entrada de principal de datos paquetes de188 bytes, y en su salida observamos un total de 204 bytes, por lo tantosegún la tabla 2.1, la cantidad de bytes consecutivos que se pueden corregirserá de 8 bytes consecutivos.Cabe resaltar que, teniendo en cuenta que la transmisión será bajomodulación OFDM, según el estándar DVB, se transmitirán múltiplesportadoras con información. Uno de los problemas muy frecuentes es eldesvanecimiento selectivo del canal, el cual se lo analizara posteriormente.

Análisis descriptivo y propósito del Decodificador Reed-SolomonEn el decodificador de Reed-Solomon se encuentra la tarea final de detectary corregir los errores en caso de haberlos. Pero Reed-Solomon tiene unalimitante, sólo permite corregir hasta 8 bytes consecutivos, de ser más, nopodría corregirlos.

La información de salida del decodificador de Reed-Solomon, es lainformación final que saldrá de la etapa de decodificación del canal en elextremo del receptor. Es decir que la entrada al decodificador de Reed-

Page 4: CODIFICADOR DE VITERBI PARA TELEVISION DIGITAL TERRESTRE.docx

Solomon es la salida de los demás bloques que conforman el esquema deFEC según el estándar DVB.

Codificador/Decodificador Interior (C. Convolucional yDecodificador de Viterbi)Los códigos convolucionales son adecuados para usar sobre canales conmucho ruido (alta probabilidad de error). Los códigos convolucionales soncódigos lineales, donde la suma de dos palabras de código cualesquieratambién es una palabra de código. Y al contrario que con los códigoslineales, se prefieren los códigos no sistemáticos.El sistema tiene memoria: la codificación actual depende de los datos que seenvían ahora y que se enviaron en el pasado.Un código convolucional queda especificado por tres parámetros (n,k,m):n es el número de bits de la palabra codificada.k es el número de bits de la palabra de datos.m es la memoria del código o longitud restringida.

Después del codificador externo y el entrelazado, la información se somete aun nuevo proceso de codificación, denominados “internos”. La codificacióninterna es del tipo convolucional y es complementada con un proceso deperforado o puncturing.Los datos que provienen del interleaving deben ser codificados con uncodificador convolucional de tasa R c =1/2, 2/3, 3/4, 5/6 ó 7/8, en función dela elección del usuario. Los polinomios generadores utilizados son:G1=171OCT y G2=133OCT para la tasa R c =1/2, el resto de tasas más altasderivan de ésta utilizando puncturing. La Figura 2.4 muestra el esquema delcodificador convolucional de relación 1/2 con 64 estados (2 elevado a la 6,debido a 6 registros).

Figura 2.4 Codificador convolucional de relación ½.

Este codificador está orientado al bit y distribuye en dos salidas (X e Y) elflujo de datos original a base de combinar (sumas módulo-2) los datos deentrada con los obtenidos en las tomas situadas detrás de una serie deregistros de desplazamiento. Se suma a los datos de entrada el dato de la

Page 5: CODIFICADOR DE VITERBI PARA TELEVISION DIGITAL TERRESTRE.docx

toma correspondiente cuando el valor del polinomio generador (expresado enbinario) en el registro en cuestión corresponde a “1” y no se usa el dato delregistro cuando el valor es “0”.Para la tasa de codificación Rc =1/2, se logra una potente protección contraerrores aleatorios, pero se baja a la mitad la capacidad del canal. Para nolimitar tanto la capacidad del canal, el sistema permite seleccionar para latransmisión sólo algunos de los datos obtenidos en las salidas X e Y, loscuales son posteriormente convertidos a secuencia en serie; es el proceso depuncturing.Un método de fuerza bruta de decodificar una secuencia utilizando elprincipio de máxima verosimilitud es calcular la distancia entre la secuenciarecibida y todas las posibles secuencias transmitidas, seleccionado entoncesla de mínima distancia. Es decir, si se reciben palabras codificadas de N bitsde longitud, entonces habrá que hacer 2N cálculos de distancia. Esto implicaque a medida que N aumenta se hace impráctica la carga computacional detal método.26El algoritmo de Viterbi esencialmente lleva a cabo el proceso dedecodificación según el principio de máxima verosimilitud; sin embargoreduce la carga de código, pero tomando ventaja del árbol de código.Se basa en el principio de calcular la distancia entre la señal recibida en eltiempo ti y todas las trayectorias o caminos del esquema del enrejado deTrellis en cada tiempo ti, desechando aquellos caminos que no soncandidatos posibles para escoger los de máxima probabilidad. Cuando 2caminos entran al mismo estado, se escoge el que tenga mayor métrica, elcual se llama camino superviviente.La selección de caminos supervivientes se efectúa por todos los estados. Eldecodificador continúa de esta forma avanzando en profundidad en elenrejado ejecutando decisiones que eliminan los caminos menos probables.

Análisis descriptivo y propósito del Codificador ConvolucionalLa codificación convolucional representa una gran ayuda a la corrección deerrores, es una codificación que emplea una estrategia diferente a la deReed-Solomon. Este no aumenta redundancia a los bits de información, sino

que cambia los bits de entrada de información por otros producto de sumasmodulo-2 y combinados con registros.Esto cambia por completo la palabra de código de entrada en una nuevapalabra de código en la salida. Lo interesante de los códigos convolucionalesestá en su método de decodificación, por medio del algoritmo de Viterbi.El objetivo de tener una segunda y última codificación es la de lograr obtenerla mínima probabilidad de error de bit, y con la codificación convolucionalbajo los parámetros que indica el estándar DVB se logra lo propuesto.

Análisis descriptivo y propósito del Decodificador de ViterbiEl decodificador de Viterbi proporciona una gran herramienta en la correcciónde errores pues su método por aproximación es altamente eficiente y sepresta para minimizar los errores en caso de no corregirlos completamente,dejando una tarea más liviana al decodificador de Reed-Solomon.

Page 6: CODIFICADOR DE VITERBI PARA TELEVISION DIGITAL TERRESTRE.docx

El algoritmo de Viterbi se realiza con la ayuda del árbol de Trellis el cual noes más que una mejor visualización del diagrama de estados del codificadorconvolucional usado.

El decodificador de Viterbi es el primer bloque decodificador en el receptor, yprácticamente es el responsable de minimizar los errores para las siguientesetapas de decodificación.Para comprender mejor el funcionamiento del algoritmo de viterbi, se lodescribirá con un ejemplo. Sea el codificador convolucional (2,1,3) es deciruna entrada, 2 salidas y 3 registros, como se muestra en la figura 2.5.

Figura 2.5 Codificador convolucional (2, 1, 3).Donde S1, S2, S3 son los 3 registros. O1 y O2 son las salidas. Bajo estascondiciones el codificador tendrá las siguientes salidas que se muestran en latabla 2.2.

Basándose en la tabla 2.2 y en el funcionamiento del codificadorconvolucional como se muestra en la figura 2.5 se puede establecerentonces el siguiente árbol de código que describe de otra manera elfuncionamiento del codificador que se muestra en la figura 2.6.

Page 7: CODIFICADOR DE VITERBI PARA TELEVISION DIGITAL TERRESTRE.docx
Page 8: CODIFICADOR DE VITERBI PARA TELEVISION DIGITAL TERRESTRE.docx

Figura 2.6 Diagrama del árbol para el codificador de la figura 2.5.En la figura 2.6 las letras representas estados del codificador e indican a queestado se dirigen si la entrada del codificador es “1” o “0”, si la entrada es “1”

se debe dirigir por el ramal inferior del árbol al siguiente estado, y si laentrada es “0” se debe dirigir al siguiente estado por el ramal superior. Y seobtendrán para cada caso las salidas correspondientes al código binario dedos dígitos mostrado en la figura 2.6.En base al árbol que describe al codificador se puede plantear undecodificador con el diagrama de Trellis que consiste en crear una cuadriculadonde en el margen izquierdo se colocarán los diferentes estados delcodificador y en el margen superior se colocaran las entradas aldecodificador en grupos de dos dígitos conforme van ingresando. En la figura2.7 se puede apreciar lo antes mencionado.

Figura 2.7 Diagrama de Trellis para la decodificación de Viterbi, primer nivel.En la figura 2.7 se describe el comienzo para la decodificación de Viterbi,para lo cual se considera que la entrada a decodificar es 11010011110011,

ingresando los bits de izquierda a derecha, y la secuencia binaria que generala palabra de código es 1001110.Para comenzar la decodificación se asume siempre que se empieza desde elestado inicial ‘A’ y se calcula la distancia de los estados siguientes posibles ala primera dupla de bits que ingresa al decodificador, escogiéndose el demenor distancia. La distancia se calcula como el número de cambios que hayque hacer sobre los bits originales para llegar a los bits finales entre dossecuencias dadas. Estas distancias se las coloca debajo de cada línea quese dibuja en el diagrama hacia el siguiente estado como se muestra en lafigura 2.7 y se encuentra con azul.Desde el estado inicial se puede ir por el ramal superior o por el inferior cuyocódigo es “00” el superior y “11” el inferior. Y se calculan las distancias decada uno de estos estados a la secuencia “11” que es la primer que ingresa.Siendo las distancias de “00” a “11” equivalente a ‘2’ y la distancia de “11” a“11” equivalente a ‘0’ por el numero de cambios que se deberían de realizar,

Page 9: CODIFICADOR DE VITERBI PARA TELEVISION DIGITAL TERRESTRE.docx

colocándose estos números debajo de las líneas azules que indican elavance en el estado.En la figura 2.8 se observa el segundo paso que ya es iterativo, desde elestado ‘A’ y ‘B’ se realizan los mismos procedimientos anteriores, calculando

distancias y ubicándolas debajo de las líneas de transición escojiendosiempre la de menor distancia total. El ejemplo se lo muestra en la figura 2.8.

Figura 2.8 Diagrama de Trellis para la decodificación de Viterbi, segundo nivel

Este proceso se lo realiza hasta culminar la trama a decodificar, que para elejemplo se lo muestra en la figura 2.9.

Figura 2.9 Diagrama de Trellis para la decodificación de Viterbi, último nivel

Una vez culminada la trama y desarrollado el diagrama de Trellis, se separael camino con menor distancia para una mejor visualización, como semuestra en la figura 2.10.

Page 10: CODIFICADOR DE VITERBI PARA TELEVISION DIGITAL TERRESTRE.docx

Figura 2.10 Diagrama de Trellis para la decodificación de Viterbi, menor distancia.

Finalmente se seleccionan los bits que generarían este camino de menordistancia, siendo esta secuencia la decodificación del código. Para elejemplo, que generan las salidas en el diagrama de la figura 2.9 se detallanen la tabla 2.3.

Estos bits son obtenidos analizando el árbol de codificación que se muestraen la figura 2.6. Finalizando el ejemplo con la secuencia 1001110 que sedetalló desde un comienzo.