You are on page 1of 8

Codificación Convolucional

En las transmisiones digitales actuales la codificación es un proceso muy elaborado, con un diagrama de
bloques general que mostramos en la siguiente figura.
Este sistema contiene dos codificadores propiamente dichos: uno exterior de bloques, y uno interior
convolucional. Estos dos codificadores introducen redundancia en los datos con objeto de poder detectar o
corregir errores de transmisión. El sistema contiene además dos entrelazados cuyo objetivo es hacer que
bloques correlativos de bits no se transmitan juntos. Este es el esquema de codificación empleado en la
televisión digital !" #igital !ideo "radcasting$. El esquema de codificación utilizado en la telefon%a móvil
&'( es similar, pues usa un codificador de bloques, un codificador convolucional y un entrelazado.
)os códigos convolucionales son adecuados para usar sobre canales con mucho ruido #alta probabilidad de
error$.
)os 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. + al contrario que con los códigos lineales, se prefieren los códigos no
sistemáticos.
El sistema tiene memoria: la codificación actual depende de los datos que se env%an ahora y que se enviaron
en el pasado.
,n código convolucional queda especificado por tres parámetros #n,-,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
)a codificación convolucional es una codificación continua en la que la secuencia de bits codificada depende
de los bits previos. El codificador consta de un registro de desplazamiento de / segmentos de longitud - #en
total -/$ que se desplaza - posiciones por ciclo y genera n funciones E012 tambi*n por ciclo. )a tasa de
codificación es, entonces, 23-4n.
En el siguiente ejemplo mostramos un registro que se desplaza una posición por ciclo # -35$, que consta de
/-36 celdas y que genera 736 funciones E012 por ciclo.
Proceso de codificación
El proceso de codificación de estos códigos se realiza utilizando un dispositivo lógico en el codificador.
Ejemplo: 8odificador convolucional #9,6,:$
)a palabra codificada se obtendr%a como el resultado de realizar una serie de operaciones lógicas entre
determinados bits que están almacenados en los registros intermedios.
Ejemplo: 8odificador convolucional #;,5,6$
• El conmutador con las dos entradas hace el papel de un registro de desplazamiento de dos estados.
• El código convolucional es generado introduciendo un bit de datos y dando una revolución completa
al conmutador.
• <nicialmente se supone que los registros intermedios contienen ceros.
En este ejemplo la palabra codificada se obtiene como resultado de sumas módulo=; entre los bits indicados
que están almacenados en los registros intermedios.
supongamos que se quiere enviar la secuencia de bits >5>5 #donde los bits más a la derecha son los más
antiguos$. El proceso de codficación es el siguiente:
• 'e introduce el primer bit de la secuencia en el codificador:
• 'e introduce el segundo bit de la secuencia en el codificador:
• 'e introduce el tercer bit de la secuencia en el codificador:
• 'e introduce el cuarto bit de la secuencia en el codificador:
Al final del proceso de codificación obtenemos que la secuencia codificada es 01 01 01 11.
'igamos con la exposición del proceso de codificación.
ebido a la memoria del código es necesario de disponer de medios adecuados para determinar la salida
asociada a una determinada entrada.
?ay tres m*todos gráficos:
• Diagrama árbol o árbol del código: representación mediante un árbol binario de las distintas
posibilidades.
• Diagrama de estados: es la forma menos utilizada.
• Diagrama de Trellis o enrejado: es la forma más utilizada porque es la que permite realizar
la decodificación de la forma más sencilla.
@ara el ejemplo del codificador #;,5,6$ anteriormente especificado tenemos el siguiente Arbol del código:
)a profundidad del árbol es ;A #m=5$, y el n.mero de estados es ;
#m=5$ . -
)a interpretación del árbol del código es la siguiente:
• ?ay dos ramas en cada nodo.
• )a rama superior corresponde a una entrada de un >.
• )a rama inferior corresponde a la entrada de un 5.
• En la parte exterior de cada rama se muestra el valor de salida.
• El n.mero de ramas se va multiplicando por dos con cada nueva entrada.
• B partir del segundo nivel el árbol se vuelve repetitivo. En realidad, solo hay cuatro tipos de nodos:
A,B,C,D. Estos tipos de nodos en realidad son estados del codificador. B partir de estos nodos, se
producen los mismos bits de salida y el mismo estado. @or ejemplo, de cualquier nodo etiquetado
como 8 se producen el mismo par de ramas de salida: Salida 10 y estado A + Salida 01 y estado B
B partir de la identificación de los estados del codificador se puede incorporar esta información en el
DIAGA!A D" T"##I$.
El diagrama de Trellis es un diagrama en forma de red. 8ada l%nea horizontal se corresponde con uno de
los estados del codificador. 8ada l%nea vertical se corresponder%a con uno de los niveles del árbol del código.
@artimos del estado inicial del codificador en el primer nivel del árbol. B partir de aqu% se trazan dos l%neas
desde este estado. ,na para el caso de que la siguiente entrada fuera un > y otra para el caso de que fuera
un 5. Estas l%neas irán hasta el siguiente nivel del árbol al estado en el que queda el codificador despu*s de
haber codificado las correspondientes entradas. Encima de cada una de estas l%neas escribiremos la salida
del codificador para esa codificación.
• Codificador convolucional, c3convCencode#&,x,-$. & es la matriz generadora del codificador
convolucional, puesta como una matriz de conexiones en binario, x es la secuencia de entrada, c es
la secuencia codificada, y - es el n.mero de posiciones que se desplaza el registro en cada ciclo.
Esta función proporciona secuencia de salida hasta que el registro queda completamente vac%o y
vuelto al estado >.
'imulamos el codificador convolucional del ejemplo 5 de la siguiente forma:
DD &3 E 5 > > F 5 > 5 F 5 5 5 GF H matriz generadora
DD -35F H se desplaza 5 posicion por ciclo
DD c3 convCencode#&,E> 5 5 >G,-$ H codificamos la secuencia E> 5 5 >G
Algoritmo de %iterbi
)a codificación convolucional se decodifica con ayuda del algoritmo de !iterbi. En la siguiente figura
mostramos el algoritmo para la codificación del ejemplo.
El algoritmo de !iterbi tambi*n se puede simular en octave, aunque sólo disponemos de la función para
codificadores que realizan un desplazamiento por ciclo #-35$. El comando correspondiente es,
• Algoritmo de %iterbi, y3viterbi#&,;Ic=5$. En esta función, & es la matriz generadora del codificador
convolucional, c es la secuencia de entrada, e y es la secuencia decodificada. )a entrada tiene que
tener los valores J4=5, por lo que hemos puesto ;Ic=5.
@ara el ejemplo que tenemos,
DD &3 E 5 > > F 5 > 5 F 5 5 5 GF H matrix generadora
DD c3 encodeCconv#&,E> 5 5 >G,5$F H codificamos E> 5 5 >G
DD H ahora empieza la decodificacion
DD y3viterbi#&,;Ic=5$ H recuperamos la secuencia
bibliograf%a
http:44trabajospracticos.9mg.com4cod4secc;.htm
http:44Keb.usc.es4Lelusive4simula6.html