Skip to content

0electricista/proyecto-codigo-hamming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proyecto alumno interno - Código de corrección de errores

Descripción

Proyecto académico diseñado para para demostrar de forma práctica el funcionamiento de los códigos de corrección de errores, especificamente el código Hamming $(7,4)$. A través de dos juegos (uno en consola de comandos y otro web), se visualiza se pueden detectar y corregir errores en la transmisión de información usando Hamming.

Tecnologías utilizadas:

  • Python: Para la lógica del juego de adivinanza en consola.
  • Desarrollo Web (HTML5, CSS3, JavaScript): Para la simulación de transmisión de mensajes y la herramienta visual de comprobación de errores.

Explicación y ejecución

1. Adivino tu animal:

Un juego de consola donde el programa adivina qué animal estás pensando de una lista de 16 opciones (León, Delfín, Elefante, etc.) haciéndote 7 preguntas. Gracias a Hamming (7,4), puedes mentir en una de las respuestas y el programa detectará y corregirá tu mentira (representado como un error en un bit) para adivinar el animal correctamente.

Para ejecutarlo, asegúrate de tener Python instalado y ejecuta el siguiente comando en tu terminal:

python adivino_tu_animal.py

2. Transmisión de mensajes:

Una página web que simula el envío de refranes codificados en binario. El sistema introduce ruido (errores) aleatoriamente en la transmisión y ofrece una herramienta para corregirlos.

desencripta comprobador

Lógica principal

Ambas aplicaciones implementan la estructura de palabra de 7 bits, donde 4 son de datos y 3 de paridad.

/*
   Estructura de la palabra: 6  5  4  3  2  1  0 (con bits)
                              d3 d2 d1 p2 d0 p1 p0 
   Estructura de la palabra: 0  1  2  3  4  5  6 (con indices)
                            d3 d2 d1 p2 d0 p1 p0 
    p0 = 6^4^2^0
    p1 = 5^4^1^0
    p2 = 3^2^1^0
*/

Extracto de comprobador.js, donde di indica que ahí hay un bit de datos, y pi indica que hay un bit de paridad.

El cálculo de paridad implementado en adivino_tu_animal.py, script.js y comprobador.js sigue la siguiente lógica para detectar errores:

  • P0 comprueba los bits en las posiciones (índices): 0, 2, 4, 6.
  • P1 comprueba los bits en las posiciones (índices): 0, 1, 4, 5.
  • P2 comprueba los bits en las posiciones (índices): 0, 1, 2, 3.

Cada bit de paridad se calcula realizando la operación XOR con cada uno de los bits de los que se encarga.

Si el síndrome calculado (obtenido al comprobar la paridad) es distinto de 0, el valor resultante indica la posición exacta del bit que ha sido alterado, permitiendo su corrección automática invirtiendo dicho bit.

Contexto del Proyecto

Este proyecto forma parte del Programa de Alumno Interno realizado en la Universidad de Sevilla durante el curso 2024-25 en el Departamento de Matemática Aplicada.


Tutor: Manuel González Regadera - Dpto. Matemática Aplicada (US)

About

Proyecto académico diseñado para para demostrar de forma práctica el funcionamiento de los códigos de corrección de errores, especificamente el código Hamming (7, 4). A través de dos juegos (uno en consola de comandos y otro web), se visualiza se pueden detectar y corregir errores en la transmisión de información usando Hamming.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors