Circuito de código de Hamming

0

Dado el siguiente Código de Hamming, me encargaron la implementación de los siguientes circuitos utilizando puertas.

  • Circuitodeltransmisor(generadordebitsdeparidad).
  • Circuitodetectordeerroresdelreceptor(ParityCheck).
  • Correctordebitsdedatos.

Hicelosdosprimeroscircuitos,peroparecequenopuedoentenderelcircuitocorrector.

Circuitogeneradordebitsdeparidad:

Circuitodeverificacióndeparidad:

Esperaba un pequeño empujón para ayudarme a terminar el resto del circuito.

Gracias de antemano.

    
pregunta Leonel

1 respuesta

0

Aquí está tu diagrama, dada tu tabla. Creo que este diagrama hace que las cosas sean realmente fáciles de entender:

Esta es solo otra forma de escribir tu tabla, excepto que es más visual y rápido para navegar sin tener cosas en tu cabeza mientras lees una fila.

Los generadores originales, \ $ P_1 \ $, \ $ P_2 \ $, y \ $ P_3 \ $, habrán producido sus valores como resultado de generar paridad para los valores dentro de su círculo. Realmente no importa si se trata de una generación par o impar, siempre que el receptor del mensaje comparta el método. Esto genera 7 bits totales de 4 bits de datos.

Al recibirlo, un receptor realiza la misma función utilizando los generadores \ $ P_1 \ $, \ $ P_2 \ $ y \ $ P_3 \ $ para replicar el trabajo, aplicándolos a los 4 bits de datos recibidos. Esto produce otro conjunto de tres valores de paridad generados, que ahora se pueden comparar con los bits de paridad incluidos en el mensaje de 7 bits. (Usando un XOR o XNOR.)

Hay ocho combinaciones posibles de estos tres bits de comparación. Pero si las paridades generadas coinciden con las paridades transmitidas, entonces no hay un error de un solo bit (esto no excluye por completo los errores de múltiples bits). Así que eso representa una de las combinaciones, dejando siete para considerar.

Es posible que uno de los bits de paridad sea el error y que los bits de datos estén bien. Pero si es así, entonces solo una de las comparaciones producirá un error. Si solo es uno, entonces es un error de bit de paridad. Hay exactamente tres casos posibles en los que solo una comparación genera un error. Así que esto representa tres combinaciones más, y solo quedan cuatro por considerar.

(Puedes elegir corregir el bit de paridad, pero creo que eso no tiene sentido. Si quieres corregir los bits de paridad, puedes hacerlo simplemente aceptando tus propias paridades generadas).

Hay tres combinaciones donde dos de las comparaciones generan un error. Estos contabilizarán aquellos bits de datos que afectan a dos bits de paridad. Y solo hay una combinación que afecta a los tres bits de paridad. Desde el diagrama de arriba, debería ser muy fácil ver cuáles son cuáles. Esos son los bits de datos que podrían haberse corrompido individualmente y deberían invertirse adecuadamente para recuperar el valor original.

    
respondido por el jonk

Lea otras preguntas en las etiquetas