Código convolucional
# Código convolucional

En teoría de la información, un código convolucional es un tipo de código de detección de errores donde:

* Cada símbolo de m bits de información se transforma, al ser codificado, en un símbolo de n bits, donde m/n es la tasa del código (n ≥ m)
* La transformación es función de los k símbolos anteriores, donde k es la longitud del código

## Características

Los códigos convolucionales son códigos lineales al igual que los códigos bloque (como los códigos de Hamming, por ejemplo) y, por tanto, se utilizan para proteger la información añadiendo redundancia a la misma, de manera que las palabras del código tengan la distancia mínima necesaria.

Sin embargo, a diferencia de los códigos bloque, las palabras de un código convolucional se generan no sólo a partir de los dígitos de información actuales sino también con la información anterior en el tiempo. Es decir, un codificador convolucional es un sistema con memoria y, en consecuencia, lleva asociada una cadena de Markov aunque ésta no es visible en la salida pero sí la condiciona.

### Codificación

Existen varios métodos de codificación de códigos convolucionales, aunque una de la más usuales es la basada en registros de desplazamiento conectados con sumadores base 2 en los que se realiza la codificación. Por cada bit que entre en el codificador se obtienen n bits.

### Decodificación

La decodificación de un código convolucional consiste en escoger la secuencia más probable entre todas las posibles. Existen diversos algoritmos que permiten la decodificación de este tipo de códigos y la decodificación óptima se consigue mediante el algoritmo de Viterbi.

