Códigos Binarios de Representación de Datos

Anuncio
Códigos Binarios de
Representación de Datos
M. en C. Erika Vilches
Parte 2
Detección de Errores
Método de Paridad
•
Cualquier grupo de bits contiene un número par o
impar de bits.
•
Un bit de paridad se añade a un grupo de bits para
hacer el número total de 1s siempre par o siempre
impar.
•
Un bit de paridad par hace el número total de 1s
par. Un bit de paridad impar hace el número total
de 1s impar.
•
Un sistema opera con una paridad u otra, pero
nunca con las dos
• Ejemplo: En un sistema de paridad par, se
hace un chequeo en cada grupo de bits
recibido, si el número total de bits es impar,
ha ocurrido un error.
Par
Impar
Código BCD con bits de paridad
Detectando un Error
• Un bit de paridad nos permite detectar un
error de un solo bit (o un número impar de
errores, lo que es muy improbable), pero
NO puede verificar si han ocurrido dos
errores en un grupo.
• Se puede utilizar para cualquier número de
bits
• Ejemplo: Asumamos que queremos
transmitir el código BCD 0101 con paridad
par:
Ahora asumamos que ocurre un error en el
tercer bit desde la izquierda (el 1 se
convierte en 0)
Cuando se recibe este código, el circuito para
chequeo del bit de paridad se da cuenta que la
paridad es impar, e indica que existe un error
Ejemplo
Asigne el bit de paridad par apropiado a los
siguientes grupos de código
1010 → 01010
1000111001001 → 01000111001001
111000 → 1111000
101101011111 → 1101101011111
101101 → 0101101
Ejercicio
• Un sistema de paridad impar recibe los
siguientes grupos de código: 10110, 11010,
110011, 110101110100 y 1100010101010.
Determine qué grupos, en caso de existir,
tienen error.
• El siguiente caracter ASCII es recibido por
un sistema de paridad impar: 00110111, es
correcto?
Código Hamming
• Para corregir un error detectado, se
requiere más información.
• La posición del error debe ser identificada,
para poder ser corregida.
• Se requiere más de un bit de paridad para
poder corregir un error detectado.
• El código Hamming nos permite corregir
errores unitarios.
Número de bits de paridad:
El número de bits de paridad se determina →
Donde d es el número de bits de datos
y p el número de bits de paridad
Si tenemos 4 bits de datos, entonces
→
p se encuentra por ensayo y error:
Se requieren 3 bits para proveer corrección de
errores unitarios para 4 bits de datos.
Posicionamiento de los bits de paridad
en el código:
El bit más a la izquierda se denominara bit 1, el
siguiente bit 2, y así sucesivamente:
Los bits de paridad se ubicarán en las posiciones
numeradas de manera correspondiente con las
potencias ascendentes de 2 (1, 2, 4, 8, ... )
Donde
es un bit de paridad y
es un bit de datos
Asignación de valores a los bits de
paridad:
1. Numerar la posición de cada bit en binario
2. Indicar la ubicación de los bits de paridad y de datos
Note que el número en binario de la posición de la
paridad P1, tiene un 1 en su bit menos significativo. Este
bit de paridad verifica todas las posiciones
(incluyéndose a si mismo) que tengan 1s en la misma
ubicación. Esto se repite para cada bit de paridad.
En cada caso, se le asigna al bit de paridad un número
que haga la cantidad de 1s en el conjunto de bits que
verifica ya sea par o impar, dependiendo de cuál se
especifique.
Ejemplo
Determine el código Hamming para en
número BCD 1001 (bits de datos), usando
paridad par.
1. Encontrar el número de bits de paridad
requerido. Para p = 3:
3 bits de paridad son suficientes.
Bits totales del código: 4 + 3 = 7
2. Construir una tabla de posiciones de bits y meter los bits de datos. Los
bits de paridad se determinarán en los siguientes pasos.
3. Determinar los bits de paridad como sigue:
Bit P1 verifica las posiciones 1, 3, 5 y 7, y debe ser 0 para que haya un
número par de 1s en este grupo.
Bit P2 verifica las posiciones 2, 3, 6 y 7 y debe ser 0 para que haya un
número par de 1s en este grupo.
Bit P3 verifica las posiciones 4, 5, 6 y 7 y debe ser 1 para que haya un
número par de 1s en este grupo.
4. Estos bits de paridad se insertan en la tabla y el resultado combinado es
0011001
Detectando y Corrigiendo un
Error con Código Hamming
•
Cada bit de paridad, junto con su grupo
correspondiente de bits debe tener una paridad
correcta.
•
Si hay 3 bits de paridad en una palabra, se hacen 3
chequeos de paridad.
•
Cada chequeo de paridad puede dar un resultado
bueno o malo.
•
El resultado total de todos los chequeos de
paridad indica el bit que contiene un error en
caso de existir.
1. Comenzar con el grupo verificado por P1
2.Verificar que el grupo tenga paridad correcta. Un 0
representa una verificación correcta, un 1 representa
un error.
3. Repetir el paso 2 para cada grupo de paridad
4. El número binario formado por los resultados de
todas las verificaciones de paridad indica la posición del
error en el código. El primer chequeo de paridad
genera el bit menos significativo. Si todos los chequeos
son correctos, no hay error.
Ejemplo
• Asuma que 0011001 es transmitido y que en
su lugar se recibe 0010001. El recibidor no
sabe que fue transmitido y debe revisar las
paridades para determinar si el código es
correcto. Indique cualquier error que haya
ocurrido en la transmisión si se utiliza
paridad par.
Hacer la tabla de
posiciones
Primera verificación de paridad:
El bit P1 verifica las posiciones 1, 3, 5 y 7. Hay 2 1s
en este grupo. La verificación de paridad es correcta.
→
Segunda verificación de paridad:
El bit P2 verifica las posiciones 2, 3, 6 y 7. Hay 2 1s
en este grupo. La verificación de paridad es correcta.
→ 0
Tercera verificación de paridad:
El bit P3 verifica las posiciones 4, 5, 6 y 7. Hay 1 1s
en este grupo. La verificación de paridad es
incorrecta.
→ 1 (MSB)
0 (LSB)
Resultado: El código de posición del error es 100 (4 en binario). Esto
indica que el bit en la 4ta posición, tiene un error. Es un 0 y debería ser un
1. Código corregido: 0011001
Descargar