Nombre: García García Alejandro. Códigos de Hamming. Un código de Hamming se considera un de los primeros códigos de gran complejidad y utilidad, ya que puede detectar un error, y a la vez decirnos la posición exacta en que ocurrió ese error, se considera a los códigos de Hamming como códigos sistemáticos, es decir códigos los cuales en los que las k primeras columnas de la matriz de comprobación se corresponden con la matriz identidad, esto es:
El código Hamming como código perfecto. Los códigos de Hamming tienen otra muy importante característica y esa es la de cumplir con el término de “código perfecto”, lo anterior está relacionado con la llamada cota de Hamming y los alcances que tienen los códigos para detectar y corregir errores, que se muestra a continuación. ∑( ) Se llamara un código perfecto a aquel que cumpla la siguiente condición: ∑( ) En su época los códigos de perfectos fueron muy utilizados debido a la ventajas que llegaron a proporcionar sobre otros códigos lineales, pero en la actualidad se prefiere utilizar códigos imperfectos, con capacidades correctoras y tasas que no serían alcanzables con los códigos perfectos. Creación y uso de un código de Hamming. Un código de Hamming agrega tras bits de redundancia por cada cuatro bits de datos por lo que los códigos se generan a partir de una distancia mínima de 3, ya que una distancia de 1 o 2 es inconveniente para poder generar un código para detectar un error. Es por eso que debe cumplir con las siguientes condiciones:
Dónde:
Es aquí donde podemos ver más claramente que:
A continuación describiremos el algoritmo que es usado para generación de este código. 1. Se calcula la longitud de y se construye una tabla de con todas las posibles combinaciones de unos y ceros. 2. Se cuenta el número de unos en las combinaciones. 3. Si el número de unos es cero esa se considera como la situación de no error y no se usa para enviar datos. 4. Si el número de unos es 1, se asigna como bit de paridad y se comienza a organizarlos de menor a mayor. 5. Si el número de unos es 2, estas posiciones son las destinadas para enviar los datos, si las combinaciones de 2 no son suficientes para todos los datos se pasa a las 3 y así sucesivamente. Ejemplo. Supongamos que se quieren enviar una palabra codificada en ASCII de 7 bits, para ello calculamos r.
Nuestro código Hamming será del tipo (7,4), donde 7 es el número de bits de datos y 3 es el número de bits de paridad, vemos que nuestra r cumple con las condiciones ya descritas anteriormente. Ahora construiremos el número posible de combinaciones. # bit B0
combinación # de “1” 0000 0 0
0
0
0
B1 B2 B3 B4
0001 0010 0011 0100
0 0 0 1
0 1 1 0
1 0 1 0
1 1 2 1
0 0 0 0
Correspondencia. Situación de no error. Bit de paridad 1 Bit de paridad 2 Bit de dato 1 Bit de paridad 3
Bit de dato 2 Bit de dato 3 Bit de dato 4 Bit de paridad 4 Bit de dato 5 Bit de dato 6 Bit de dato 7 No se usa. No se usa No se usa No se usa
Supongamos que deseamos codificar el dato 0110101. Hacemos un arreglo de las posiciones y la correspondencia, a continuación buscamos en que parte de los arreglos además del propio, donde aparece el bit de paridad, y aplicamos la operación XOR. De lo anterior tenemos:
Ahora procedemos a formar un nuevo arreglo. Donde P son los bits de paridad y D los bits de dato. B1 P1 Palabra sin codificar P1 1 P2 P3 P4
B2 P2
0
B3 D1 0
B4 P3
0 0
B5 D2 1
B6 D3 1
B7 D4 0
1 1
0 0 0
1 0
1
B8 P4
B9 D5 1
B10 D6 0
B11 D7 1
0
1 1
0
1
1
0
Los bits de paridad B1, B2, B4, B8 se determinan de la siguiente manera:
1
Al terminar lo anterior y ya que se terminaron los bits de paridad solo se forma la palabra codificada, la cual será: 1001100101. Lo anterior no permite formular la generación de una matriz de verificación de paridad para los códigos de Hamming siguiendo esta sencilla regla: se deja la matriz identidad hasta el último y se incluyen los números de uno a (exceptuando los que ya están en la matriz identidad) en las demás posiciones. Para el ejemplo anterior podemos generar la matriz H de la siguiente manera: (
)
La detección de errores se puede realizar por medio de detección por síndrome a partir de la obtención de la matriz H.
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.