Práctico 1 - Ejercicio 9

Práctico 1 - Ejercicio 9

de Veronica Viviana Pintos Fernandez -
Número de respuestas: 4

Hola buenas tardes, 

Miré ejemplos de como resolver si hubo errores o no utilizando Hamming y habla de que los bits de paridad van en posiciones pares.

Letra del ejercicio: 

Se desea transmitir dígitos decimales en código BCD a través de un canal con ruido.
Para eso se genera a partir del código BCD un código de Hamming de 7 bits.
Decodificar el siguiente mensaje asumiendo que a lo sumo ha ocurrido un único
error en cada palabra del código.
1001000 – 0000000 – 1110100 – 0001111
Notas:
• Orden de los bits: m4m3m2p3m1p2p1
• Dígito BCD: m4m3m2m1


Los bits de paridad cuáles son en este caso y cuánto varía el ejercicios con lo de BCD?

Muchas gracias,

Verónica

En respuesta a Veronica Viviana Pintos Fernandez

Re: Práctico 1 - Ejercicio 9

de Diego Barreiro Indart -

Los bits de paridad son los p, y van en los lugares 1, 2 y 4 (empezando a contar en 1 desde la derecha). Fijate en los apuntes que está bien explicado. El código de Hamming no solo detecta un error sino que te dice en qué dígito está (si el error está en el lugar 2, cambias lo que haya en ese lugar por su complemento, o sea si es 0 a 1, si es 1 a 0).

Lo de que sea BCD es un problema extra, que tenés que atender solo después de terminar de "corregir" lo que estaba guardado. Ahí vas a tener que ver qué palabra representan esos 4 bits.

En respuesta a Diego Barreiro Indart

Re: Práctico 1 - Ejercicio 9

de Veronica Viviana Pintos Fernandez -

Muchas gracias por tu respuesta!

Sería algo asi?

Teniendo en cuenta

p1 = a4 ⊕ a2 ⊕ a1

p2 = a4 ⊕ a3 ⊕ a1

p3 = a4 ⊕ a3 ⊕ a2

s0 = p1 ⊕ a4 ⊕ a2 ⊕ a1

s1 = p2 ⊕ a4 ⊕ a3 ⊕ a1

s2 = p3 ⊕ a4 ⊕ a3 ⊕ a2

estos bits "s" representan, en binario, un número "S"

S = S2 S1 S0

- Para el caso de 1001000

p1 = 1  0  0 = 1               s0 = 0 ⊕ 1 ⊕ 0 ⊕ 0 = 1

p2 = 1 ⊕ 0 ⊕ 0 = 1               s1 = 0 ⊕ 1 ⊕ 0 ⊕ 0 = 1

p3 = 1 ⊕ 0 ⊕ 0 = 1               s2 = 1 ⊕ 1 ⊕ 0 ⊕ 0 = 0     S = 011

  Cambio -> 1001100

- Para el caso de 0000000

p1 = 0 ⊕ 0 ⊕ 0 = 0               s0 = 0 ⊕ 0 ⊕ 0 ⊕ 0 = 0

p2 = 0 ⊕ 0 ⊕ 0 = 0               s1 = 0 ⊕ 0 ⊕ 0 ⊕ 0 = 0

p3 = 0 ⊕ 0 ⊕ 0 = 0               s2 = 0 ⊕ 0 ⊕ 0 ⊕ 0 = 0     S = 000

  El código 0000000 es correcto

- Para el caso de 1110100

p1 = 1 ⊕ 1 ⊕ 1 = 1               s0 = 0 ⊕ 1 ⊕ 1 ⊕ 1 = 1

p2 = 1 ⊕ 1 ⊕ 1 = 1               s1 = 0 ⊕ 1 ⊕ 1 ⊕ 1 = 1

p3 = 1 ⊕ 1 ⊕ 1 = 1               s2 = 0 ⊕ 1 ⊕ 1 ⊕ 1 = 1     S = 111

  Cambio -> 0110100

- Para el caso de 0001111

p1 = 0 ⊕ 0 ⊕ 1 = 1               s0 = 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0

p2 = 0 ⊕ 0 ⊕ 1 = 1               s1 = 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0

p3 = 0 ⊕ 0 ⊕ 0 = 0               s2 = 1 ⊕ 0 ⊕ 0 ⊕ 0 = 1     S = 001

  Cambio -> 0001110

y el BCD = 4C00340E?

En respuesta a Veronica Viviana Pintos Fernandez

Re: Práctico 1 - Ejercicio 9

de Anthony Martin Cabrera Gonzalez -

La detección del bit errado está bien para todos los casos.

Acordate que:

• Orden de los bits: m4m3m2p3m1p2p1
• Dígito BCD: m4m3m2m1

Vos estas asumiendo que el dígito BCD es todo lo que esta entre guiones y no es así.

Por ej: 

-> 1001000,

(m4 = 1

m3 = 0

m2 = 0

p3 = 1

m1 = 0

p2 = 0

p1 = 0 )

el bit errado es el que corresponde a m1, por lo tanto m1 en realidad vale 1

entonces m4 m3 m2 m1 es 1001 (9 en hexa)

para los demas casos:

-> 0000000, el BCD queda 0000 -> 0

-> 1110100, el BCD queda 0111 -> 7

-> 0001111, el BCD queda 0001 -> 1