Sunteți pe pagina 1din 3

ITCR. Ingeniera Mecatrnica. Laboratorio de electrnica digital. Kevin Rodrguez. Oscar Azofeifa.

DESCRIPCION DEL ALGORITMO DE CODIFICACION HAMMING


Kevin Rodrguez Baltodano - 201028300
e-mail: keroba13@gmail.com

Oscar Azofeifa Castillo - 201031739


e-mail: oscar.azo1@gmail.com

Resumen En el presente trabajo se realizo un programa, que tiene como fin detectar un error en una transmisin de datos, por medio de la implementacin del cdigo 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 posicin del numero de bit que fue cambiado. Palabras claveBits, cdigo de Hamming, paridad. [2] INTRODUCCIN

Los bits del resto de posiciones son utilizados como bits de datos (posiciones 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, entre otros.).

El proyecto realizado tiene como objetivo promover una mejor comprensin del concepto de manejos de bits, por medio de la implementacin de dichos conceptos en el diseo de sistemas digitales. Para realizar dicho objetivo se pretende investigar e implementar por medio del compilador visual C+ +, el cdigo de Hamming empleado a un nmero de 12 bits. Adems se pretende conocer y comprender el concepto y la interpretacin de los bits de paridad para la deteccin de errores en datos binarios, provocando as una correcta manipulacin de la informacin binaria. [3] DESCRIPCIN DEL ALGORITMO DE HAMMING

En el caso de la forma de establecer si el bit de paridad va ser representado por un 1 o un 0, se especifica en la siguiente tabla:
Figura 1. Posicin y Verificacin de los bits de paridad

Dicha tabla explica la manera de saber qu valor binario le corresponde a cada bit de paridad, por lo que con los bits que verifica, su fuese el caso de que la paridad fuera par, la cantidad de unos 1 que deben de quedar en la fila de verificacin tiene que ser par, por lo que sin el bit de paridad se cumple que es par, a ese bit se le asigna un 0 y si sucediera el caso contrario se le asignara un 1 para completar la paridad. Lo mismo ocurre se la paridad fuese impar.

A. DESCRIPCIN TEORICA
El cdigo de Hamming es un bloque de cdigo lineal, el cual tiene como funcin principal detectar y corregir errores en un bit. Comparando con otros cdigos de deteccin de errores, como lo es los bit de paridad, el cdigo 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 ms lo detectan. El presente algoritmo utiliza los bit de paridad para encontrar cual bit fue el que se cambio durante la transmisin de datos; y por medio de una tabla, que se realiza identificando la paridad de los bits, se obtiene el resultado o la posicin del bit que fue cambiado, por lo que es posible realizar la correccin. Dicho cdigo presenta o ya tiene establecido la posicin de los bits de paridad y la forma de comparar o establecer para que dichos bits cumplan con la paridad establecida (Par o impar); y dichas posiciones estn establecidas por medio de potencia de dos, sea:

Ejemplo: Se considera la palabra de 7 bits "0110101". Se utiliza la d para indicar los bits de datos y la p para los de paridad. En este caso la paridad es par:
Figura 2. Verificacin y obtencin del valor de los bit de paridad

Todos los bits cuya posicin es potencia de dos se utilizan como bits de paridad (posiciones 1, 2, 4, 8, 16, 32, 64, entre otros.).

En el caso que cambiara un bit, el siguiente paso del cdigo de Hamming identificara la posicin del bit que cambio. Para esto se procede a elaborar otra tabla, en donde se realiza una comparacin entre filas, teniendo como prioridad la cantidad

ITCR. Ingeniera Mecatrnica. Laboratorio de electrnica digital. Kevin Rodrguez. Oscar Azofeifa. de 1 que se encuentran en cada fila. En el caso de que en la fila se encuentre un nmero par de 1, se pone un 0 en la nueva casilla, pero si se encuentra un nmero impar de 1, se colocara un 1 en dicha casilla. El nmero que se forme en esa columna, representa la posicin del bit que se cambio; y dicho nmero se lee de abajo hacia arriba. Hay que tener en cuenta que la verificacin de paridad se realiza de la misma manera que lo indica la tabla 1. Ejemplo: Para el caso anterior, el bit que se cambi fue el ltimo bit, teniendo como palabra "10001100100", mientras la palabra correcta es: "10001100101". Obtenindolo a pura vista, se puede observar que el bit que cambio est en la posicin 11, pero dicha posicin con el cdigo de Hamming se obtiene por medio de la explicacin anterior, el cual se ilustra en la siguiente tabla: Luego que el usuario haya ingresado correctamente el nmero, el programa convierte ese nmero hexadecimal a decimal, en donde luego procede a realizar la conversin a binario para as implementar el cdigo de hamming. Ya que el nmero este en binario, el programa procede a preguntar al usuario si el bit de paridad es par o impar. Siguiente a la respuesta que digite el usuario, el programa empieza a aplicar el algoritmo o el cdigo de hamming, en donde realiza una matriz para determinar el valor correspondiente del bit de paridad, ya sea 1 o 0; (ejemplo se puede observar en la figura 2). Para la demostracin de dicho proceso, se procede a 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 posicin de los bits presentados en pantalla quiere cambiar; y luego de que el usuario digital la posicin del bit que desea cambiar, nuevamente se procede a implementar el cdigo de hamming para verificar si un bit fue cambiado, y si fue as, el programa imprime la posicin del bit errneo y procede a cambiarlo; donde luego termina imprimiendo el nmero correcto. En el cdigo normal de Hamming no es posible detectar dos o ms bits errneos, para tales casos se utiliza otro tipo de cdigo llamado Hamming extendido. [4] CONCLUSIONES El cdigo de Hamming presenta una importancia en la deteccin y correccin de datos, comparndolos con otros cdigos o algoritmos ya que no lo detecta en qu posicin se encuentra el bit errneo, sino que tambin lo arregla. Una desventaja que presenta este cdigo es que es solamente funciona cuando se cambia un bit, por lo que si durante la transmisin del dato cambia dos o ms bits, el cdigo de Hamming es intil. Durante el proceso de implementacin del cdigo, es importante tener presente la posicin, el valor que se le asigne a los bits de paridad, y la paridad que se desea implementar, ya que cualquier falla que se presente en los puntos anteriores, puede llevar a un anlisis y a una implementacin de dicho cdigo errneo, por lo cual no se va a obtener el resultado esperado y el cdigo de hamming no va a cumplir la funcin de detectar y corregir el bit errneo que presente el nmero. BIBLIOGRAFA

1.
Figura 3. Obtencin de la posicin del bit que cambi en la transmisin

Y como se mencion anteriormente, el resultado que se obtiene en la ltima columna representa la posicin del bit que se cambio, que en este caso y como se dedujo anteriormente, el bit que se cambio est en la posicin 11 = 1011. Por lo que cambiando ese bit por el valor contrario, que sera un 1 se obtendra la palabra correcta que fue "10001100101". (Ejemplo tomado de http://chovis2.tripod.com/CODIGO_HAMMING.HTM)

2.

3.

B. DESCRIPCIN DEL PROGRAMA


El programa pretende resolver por medio de la implementacin del cdigo de hamming en el compilador Visual C++, la deteccin de errores de un cambio en un bit en un nmero hexadecimal de 12 bits. El programa empieza con un men en donde presenta al usuario la opcin de ingresar un nmero hexadecimal y presenta la opcin de salir del programa. En el caso que el usuario seleccione la primera opcin, va a tener la oportunidad de ingresar un nmero hexadecimal de 12 bis. Para esto el programa verifica si la opcin es vlida, sea, que los nmeros digitados correspondan a un nmero hexadecimal y luego verifica que el nmero digitado sea de 12 bits. En el caso que se diera un error en estos procesos, el programa imprimir en pantalla un aviso correspondiente al error que se present a la hora de digitar los datos, ya sea si el nmero digitado no corresponde a un nmero digital, o si no corresponde a un nmero de 12 bits.

[5]

[1] Anonymous Codigo de hamming. [Disponible]. 2011(setiembre/3), pp. 6. 2011. Available: http://gemini.udistrital.edu.co/comunidad/profesores/jruiz/jairo cd/texto/uit/hamminguno.pdf. [2] Anonymous Codigo hamming. 2011(setiembre/3), pp. 1. 2011. Available: [Disponible].

ITCR. Ingeniera Mecatrnica. Laboratorio de electrnica digital. Kevin Rodrguez. Oscar Azofeifa. http://chovis2.tripod.com/CODIGO_HAMMING.HTM.

S-ar putea să vă placă și