La corrección de errores

Para poder recuperar los datos perdidos es necesario emplear códigos altamente redundantes, de esta forma, la utilización efectiva del canal de transmisión se reduce considerablemente. Es necesario pues, que el receptor disponga de los mecanismos necesarios (Hardware) para recuperar la información a través de los datos corruptos que le llegan.

Códigos de control 2 en 3

Este tipo de códigos se caracteriza por repetir la información 3 veces. Si una información cualquiera está codificada en n bits, se forma un nuevo código 3*n bits, en donde A está repetido 3 veces. Al analizar la información transferida se decide si es correcta según el número de veces que coincida las 3 secuencias.

 

Códigos de Hamming

Con este nombre se conoce a un conjunto de códigos correctores de error en k dígitos binarios; donde k es un número natural arbitrario. En estas líneas trataremos solo el caso de k=1, es decir, códigos de Hamming de orden uno.
Este código se construye a partir de uno de n dígitos binarios de distancia mínima uno. Estos n dígitos formarán dentro del código de Hamming los dígitos binarios de datos. A continuación añadiremos p dígitos binarios llamados dígitos de control. Por lo tanto el código formado (código de Hamming) tendrá una longitud de l=n+p dígitos. La numeración de los dígitos se realiza de la forma habitual pero comenzando por uno, es decir: bn+p bn+p-1... b2 b1.

Los dígitos de control ocuparán las posiciones iguales a las potencias exactas de dos, es decir bj con j=20, 21,...,2p-1. De aquí deducimos que el número p debe ser el natural más pequeño que satisfaga la siguiente desigualdad:


2p>=n+p+1

El valor que alcanzan estos códigos binarios , surge de establecer p controles de paridad sobre determinadas subcombinaciones del código. Para ello se siguen sistemáticamente estos pasos:
Se renombran eventualmente los dígitos binarios de control como: cp cp-1 ... c2 c1. Donde cj = b2j-1 (j=1,2,....p).
Se halla la codificación en binario natural de cada una de las posiciones dentro del código a través de los dígitos binarios: cp cp-1...c2 c1.
El dígito binario cj establecerá un control de paridad (par o impar) sobre la subcombinación formada por las posiciones, que codificadas en el punto anterior, posean un uno en dicho dígito binario cj.

 

Veamos como se construiría un código Hamming a partir de un código natural de 4 dígitos binarios (que tomamos como dígitos binarios de datos). Por consiguiente:

n=4 => 2p >= n+p+1 => p=3 (23>=4+3+1) => L(longitud)=4+3=7.

  • Numeración de los dígitos binarios del código: b7 b6 b5 b4 b3 b2 b1;donde b4 b2 b1 son los dígitos binarios de control y b7 b6 b5 b3 los de datos.
  • Identificación de los dígitos de control c3=b4 c2=b2 c1=b1.
  • codificación de las posiciones del código y controles de paridad según la siguiente tabla:
Codificacion de las posiciones. Controles de paridad
Posición c3;c2;c1
c1: b7 b5 b3 b1
c2: b7 b6 b3 b2
c3: b7 b6 b5 b4
1
0 0 1
2
0 1 0
3
0 1 1
4
1 0 0
5
1 0 1
6
1 1 0
7
1 1 1

El código Hamming resultante (con control de paridad par) es:

b7 b6 b5 b4 b3 b2 b1
0
0 0 0 0 0 0 0
1
0 0 0 0 1 1 1
2
0 0 1 1 0 0 1
3
0 0 1 1 1 1 0
4
0 1 0 1 0 1 0
5
0 1 0 1 1 0 1
6
0 1 1 0 0 1 1
7
0 1 1 0 1 0 0
8
1 0 0 1 0 1 1
9
1 0 0 1 1 0 0
10
1 0 1 0 0 1 0
11
1 0 1 0 1 0 1
12
1 1 0 0 0 0 1
13
1 1 0 0 1 1 0
14
1 1 1 1 0 0 0
15
1 1 1 1 1 1 1

 

El modelo físico/La corrección de errores