Hamming ideó además un sistema de codificación que permite recuperar un número de errores de transmisión por palabra transmitida arbitrariamente grande, aunque en esta sección se presenta (por motivos de simplicidad) el código que permite recuperar sólo un bit erróneo.
Para hacer esto, entre los bits de datos se insertan bits de paridad, concretamente en las posiciones 2i siendo i ≥ 0. Como puede deducirse fácilmente, si la trama contiene n de datos, entonces un código de Hamming introduce
| (E.1) |
de redundancia.
|
Supongamos que el tamaño de los símbolos originales es de 7 bits. El código de Hamming inserta en las posiciones que son potencias de dos un bit de paridad (véase la Figura E.1).
|
Por ejemplo, el bit que está en la posición 1 (que tiene un único bit distinto de cero y que es el bit de menos peso) es el bit de paridad de los bits situados en las posiciones impares, porque todas ellas tienen el bit menos significativo igual a 1. En la Figura E.2 se muestra un ejemplo de codificación en el que se usa paridad par.
Para conocer si se ha producido un error de transmisión, el receptor recalcula los bits de paridad. Si no se ha producido ningún error, los bits de paridad deben coincidir con los que viajan con los datos. Si ha ocurrido un error, los bits de paridad que cambian indican dónde se ha producido el error. Por ejemplo, si el bit séptimo en la Figura E.2 cambiara de 1 a 0 durante una transmisión ruidosa, el receptor va a apreciar que los bits de paridad r1, r2 y r4 son diferentes a los que se reciben. Como es más probable que se produzca un error en un bit que en tres, supondrá que el bit 7 (donde 7 = 1 + 2 + 4) es el bit erróneo y lo corregirá. Este proceso se muestra también en la Figura E.3.