Está en la página 1de 3

ITCR. Ingeniera Mecatrónica. Laboratorio de electrónica digital.

Kevin Rodríguez. Oscar Azofeifa.

DESCRIPCION DEL ALGORITMO DE CODIFICACION HAMMING


Kevin Rodríguez Baltodano - 201028300
e-mail: keroba13@gmail.com
Oscar Azofeifa Castillo - 201031739
e-mail: oscar.azo1@gmail.com

En el caso de la forma de establecer si el bit de paridad va ser


Resumen— En el presente trabajo se realizo un
representado por un “1” o un “0”, se especifica en la siguiente
programa, que tiene como fin detectar un error en una
tabla:
transmisión de datos, por medio de la implementación del
código de Hamming. Para esto se creó dicho algoritmo
utilizando como compilador visual C++, en donde el
usuario tiene la posibilidad de ingresar un dato
hexadecimal de 12 bits y cambiarle cualquier bit;
mostrando como resultado el lugar o la posición del
numero de bit que fue cambiado.

Palabras clave—Bits, código de Hamming, paridad.

I. INTRODUCCIÓN
Figura 1. Posición y Verificación de los bits de paridad
El proyecto realizado tiene como objetivo promover una
mejor comprensión del concepto de manejos de bits, por medio Dicha tabla explica la manera de saber qué valor binario
de la implementación de dichos conceptos en el diseño de le corresponde a cada bit de paridad, por lo que con los bits
sistemas digitales. Para realizar dicho objetivo se pretende que “verifica”, su fuese el caso de que la paridad fuera par, la
investigar e implementar por medio del compilador visual cantidad de unos “1” que deben de quedar en la “fila de
C++, el código de Hamming empleado a un número de 12 bits. verificación” tiene que ser par, por lo que sin el bit de paridad
Además se pretende conocer y comprender el concepto y se cumple que es par, a ese bit se le asigna un “0” y si
la interpretación de los bits de paridad para la detección de sucediera el caso contrario se le asignaría un “1” para
errores en datos binarios, provocando así una correcta completar la paridad. Lo mismo ocurre se la paridad fuese
manipulación de la información binaria. impar.

Ejemplo: Se considera la palabra de 7 bits "0110101". Se


II. DESCRIPCIÓN DEL ALGORITMO DE
utiliza la d para indicar los bits de datos y la p para los de
HAMMING
paridad. En este caso la paridad es par:
A. DESCRIPCIÓN TEORICA
El código de Hamming es un bloque de código lineal, el
cual tiene como función principal detectar y corregir errores en
un bit. Comparando con otros códigos de detección de errores,
como lo es los bit de paridad, el código de Hamming presenta
una ventaja que es que a pesar de encontrar cual bit fue el que
se cambio, presenta la posibilidad de corregirlo, mientras los
anteriores nada más lo detectan.
El presente algoritmo utiliza los bit de paridad para
encontrar cual bit fue el que se cambio durante la transmisión
de datos; y por medio de una tabla, que se realiza identificando
la paridad de los bits, se obtiene el resultado o la posición del
bit que fue cambiado, por lo que es posible realizar la
corrección.
Dicho código presenta o ya tiene establecido la posición de
los bits de paridad y la forma de comparar o establecer para Figura 2. Verificación y obtención del valor de los bit de paridad
que dichos bits cumplan con la paridad establecida (Par o
impar); y dichas posiciones están establecidas por medio de En el caso que cambiara un bit, el siguiente paso del código de
potencia de dos, ósea: Hamming identificaría la posición del bit que cambio. Para
esto se procede a elaborar otra tabla, en donde se realiza una
 Todos los bits cuya posición es potencia de dos se comparación entre filas, teniendo como prioridad la cantidad
utilizan como bits de paridad (posiciones 1, 2, 4, 8, de “1” que se encuentran en cada fila. En el caso de que en la
16, 32, 64, entre otros.). fila se encuentre un número par de “1”, se pone un “0” en la
 Los bits del resto de posiciones son utilizados como nueva casilla, pero si se encuentra un número impar de “1”, se
bits de datos (posiciones 3, 5, 6, 7, 9, 10, 11, 12, 13, colocaría un 1 en dicha casilla. El número que se forme en esa
14, 15, 17, entre otros.).

1
ITCR. Ingeniera Mecatrónica. Laboratorio de electrónica digital.
Kevin Rodríguez. Oscar Azofeifa.

columna, representa la posición del bit que se cambio; y dicho decimal, en donde luego procede a realizar la conversión a
número se lee de abajo hacia arriba. binario para así implementar el código de hamming.
Hay que tener en cuenta que la verificación de paridad se Ya que el número este en binario, el programa procede a
realiza de la misma manera que lo indica la tabla 1. preguntar al usuario si el bit de paridad es par o impar.
Ejemplo: Para el caso anterior, el bit que se cambió fue el Siguiente a la respuesta que digite el usuario, el programa
último bit, teniendo como palabra "10001100100", mientras la empieza a aplicar el algoritmo o el código de hamming, en
palabra correcta es: "10001100101". Obteniéndolo a pura donde realiza una matriz para determinar el valor
vista, se puede observar que el bit que cambio está en la correspondiente del bit de paridad, ya sea 1 o 0; (ejemplo
posición 11, pero dicha posición con el código de Hamming se se puede observar en la figura 2).
obtiene por medio de la explicación anterior, el cual se ilustra Para la demostración de dicho proceso, se procede a
en la siguiente tabla: imprimir el resultado en pantalla para que el usuario tenga
la oportunidad de observar que fue lo que el programa
realizo; y luego de imprimir dicho resultado, presenta en
pantalla el resultado final de la palabra original.
Luego se procede a preguntar cual posición de los bits
presentados en pantalla quiere cambiar; y luego de que el
usuario digital la posición del bit que desea cambiar,
nuevamente se procede a implementar el código de
hamming para verificar si un bit fue cambiado, y si fue así,
el programa imprime la posición del bit erróneo y procede a
cambiarlo; donde luego termina imprimiendo el número
correcto. En el código normal de Hamming no es posible
detectar dos o más bits erróneos, para tales casos se utiliza
otro tipo de código llamado Hamming extendido.

III. CONCLUSIONES

1. El código de Hamming presenta una


importancia en la detección y corrección de
Figura 3. Obtención de la posición del bit que cambió en la datos, comparándolos con otros códigos o
transmisión algoritmos ya que no lo detecta en qué
posición se encuentra el bit erróneo, sino que
Y como se mencionó anteriormente, el resultado que se también lo arregla.
obtiene en la última columna representa la posición del bit que
se cambio, que en este caso y como se dedujo anteriormente, el 2. Una desventaja que presenta este código es
bit que se cambio está en la posición 11 = 1011. Por lo que que es solamente funciona cuando se cambia
cambiando ese bit por el valor contrario, que sería un “1” se un bit, por lo que si durante la transmisión del
obtendría la palabra correcta que fue "10001100101". dato cambia dos o más bits, el código de
(Ejemplo tomado de Hamming es inútil.
http://chovis2.tripod.com/CODIGO_HAMMING.HTM)
3. Durante el proceso de implementación del
B. DESCRIPCIÓN DEL PROGRAMA código, es importante tener presente la
posición, el valor que se le asigne a los bits de
El programa pretende resolver por medio de la paridad, y la paridad que se desea
implementación del código de hamming en el compilador implementar, ya que cualquier falla que se
Visual C++, la detección de errores de un cambio en un bit presente en los puntos anteriores, puede llevar
en un número hexadecimal de 12 bits. a un análisis y a una implementación de dicho
El programa empieza con un menú en donde presenta al código erróneo, por lo cual no se va a obtener
usuario la opción de ingresar un número hexadecimal y el resultado esperado y el código de hamming
presenta la opción de salir del programa. no va a cumplir la función de detectar y
En el caso que el usuario seleccione la primera opción, va a corregir el bit erróneo que presente el número.
tener la oportunidad de ingresar un número hexadecimal de
12 bis. Para esto el programa verifica si la opción es válida, IV. BIBLIOGRAFÍA
ósea, que los números digitados correspondan a un número
hexadecimal y luego verifica que el número digitado sea de
12 bits. En el caso que se diera un error en estos procesos,
el programa imprimirá en pantalla un aviso correspondiente [1] Anonymous Codigo de hamming. [Disponible].
al error que se presentó a la hora de digitar los datos, ya sea 2011(setiembre/3), pp. 6. 2011. Available:
si el número digitado no corresponde a un número digital, o http://gemini.udistrital.edu.co/comunidad/profesores/jruiz/jairo
si no corresponde a un número de 12 bits. cd/texto/uit/hamminguno.pdf.
Luego que el usuario haya ingresado correctamente el
número, el programa convierte ese número hexadecimal a

2
ITCR. Ingeniera Mecatrónica. Laboratorio de electrónica digital.
Kevin Rodríguez. Oscar Azofeifa.

[2] Anonymous Codigo hamming. [Disponible]. http://chovis2.tripod.com/CODIGO_HAMMING.HTM.


2011(setiembre/3), pp. 1. 2011. Available:

También podría gustarte