proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
Conferencia n°7
1. CONFERENCIA N°7
Tabla de contenido
1. OBJETIVOS.............................................................................................................. 1
2. INTRODUCCIÓN .................................................................................................... 1
3. DESARROLLO ........................................................................................................ 1
3.1. PARIDAD .......................................................................................................... 1
3.1.1. PARIDAD LONGITUDINAL Y VERTICAL........................................... 2
3.1.2. SUMA DE COMPROBACIÓN ................................................................. 2
3.2. CÓDIGO HAMMING ....................................................................................... 2
3.2.1. DESARROLLO .......................................................................................... 3
4. CONCLUSIONES .................................................................................................... 6
5. RECOMENDACIONES .......................................................................................... 7
6. GLOSARIO .............................................................................................................. 7
1. OBJETIVOS
Analizar Eficiencia de un Código y la codificación por Hamming
Determinar la eficacia del código enviado
Verificar la Codificación por Hamming
Desarrollar diferentes ejercicios propuestos de codificación por Hamming
2. INTRODUCCIÓN
En informática, el código de Hamming es un código detector y corrector de errores que
lleva el nombre de su inventor, Richard Hamming. En los datos codificados en
Hamming se pueden detectar errores en un bit y corregirlos, sin embargo no se distingue
entre errores de dos bits y de un bit (para lo que se usa Hamming extendido). Esto
representa una mejora respecto a los códigos con bit de paridad, que pueden detectar
errores en sólo un bit, pero no pueden corregirlo.
3. DESARROLLO
3.1. PARIDAD
La paridad es probablemente el esquema de detección de error, más sencillo, usado para
los sistemas de comunicación de datos y se usa con verificación de redundancia vertical
y horizontal. Con la paridad, un solo bit (llamado bit de paridad) se agrega a cada
carácter para forzar el total de números unos en el carácter, incluyendo el bit de paridad,
2. para que sea un número impar (paridad impar) o un número par (paridad par). Por
ejemplo, el código ASCII para la letra "C" es 67 decimal, 43 hexadecimal o l000011
binario, con el bit P representando el bit de paridad quedaría Pl000011. Hay tres unos en
el código, no contando el bit de paridad. Si se usa la paridad impar, el bit P se hace un 0,
manteniendo el número total de unos en tres, un número impar. Si se usa la paridad par;
el bit P se convierte en 1 y el número total de unos es cuatro, un número par.
3.1.1. PARIDAD LONGITUDINAL Y VERTICAL
La revisión de redundancia vertical (VRC), es un esquema de detección de errores que
usa la paridad para determinar si un error de transmisión ha ocurrido dentro de un
carácter. Por lo tanto, el VRC a veces se llama paridad de carácter. Con el VRC, cada
carácter tiene un bit de paridad agregado a él, antes de la transmisión. Puede usar
paridad par o impar. El ejemplo mostrado bajo el tema "paridad" involucrando el
carácter “C” ASCII 67, es un ejemplo de cómo se usa el VRC.
La revisión de redundancia horizontal y longitudinal (HRC o LRC), es un esquema de
detección de errores que utiliza la paridad para determinar si un error de transmisión ha
ocurrido en un mensaje y, por lo tanto, a veces es llamado paridad de mensaje. Con el
LRC cada posición de bit tiene un bit de paridad.
3.1.2. SUMA DE COMPROBACIÓN
La suma de comprobación se emplea para obtener un campo de comprobación de
errores para los diferentes datos que componen la trama. Para ello se suman todos los
bytes a transmitir en un único registro de 8, 16 o 32 bits, dependiendo del tamaño
deseado para el campo de comprobación. Si la suma supera el valor máximo del
registro, el valor quedará truncado al número de bits empleado en el mismo.
EJEMPLO:
Vamos a obtener la suma de comprobación de 8 bits para el mensaje „ABCD‟.
Para ello se sumarán los códigos ASCII correspondientes a cada carácter, que en
decimal son:
65+66+67+68 = 266 (en binario 1 0000 1010) → 10 (en binario 0000 1010)
Puesto que la suma supera el valor máximo para 8 bits (255) el resultado se trunca a 8
bits.
Este sistema presenta también algunos inconvenientes. En primer lugar, no se detectan
errores por alteración de orden en los bytes de la trama (la suma de comprobación para
„ABCD‟ es la misma que para „BADC‟).
3.2. CÓDIGO HAMMING
El código de Hamming es un código detector y corrector de errores que lleva el
nombre de su inventor, Richard Hamming. En los datos codificados en Hamming se
pueden detectar errores en un bit y corregirlos, sin embargo no se distingue entre errores
de dos bits y de un bit (para lo que se usa Hamming extendido). Esto representa una
mejora respecto a los códigos con bit de paridad, que pueden detectar errores en sólo un
bit, pero no pueden corregirlo.
3. 3.2.1. DESARROLLO
1. Supongamos que el Tx emite el mensaje dado y el Rx recibe el mensaje erróneo
Indicando. Los mensajes se codifican en ASCII.
a) Si el método de detección – corrección de errores utilizado es el de paridad cruzada
¿Podrá el Rx detectar y/o corregir los errores? (Analizar a partir del método)
Códigos ASCII
Car # 8 7 6 5 4 3 2 1 Car Dec Hex
1 0 1 0 0 0 0 0 1 A A 65 41
2 0 1 0 0 1 1 0 1 M Tx M 77 4D
3 1 1 0 0 1 1 1 1 O O 79 4F
4 1 1 0 1 0 0 1 0 R R 82 52
5 0 0 0 1 0 0 0 1 Car de paridad vertical
Códigos ASCII
Car # Rx Tx 7 6 5 4 3 2 1 Car Dec Hex
1 1 0 1 0 1 0 0 1 0 R R 82 52
2 0 0 1 0 0 0 0 0 1 A Rx A 65 41
3 0 1 1 0 0 1 1 0 1 M M 77 4D
4 1 1 1 0 0 1 1 1 1 O O 79 4F
5 0 0 0 0 1 0 0 0 1 Car de paridad vertical
0 0 0 0 1 0 0 0 1 Car de paridad calculada en Rx
Solución._
a) Receptor sólo detecta errores en la paridad longitudinal en los caracteres #1 y #3 y
no detecta errores por paridad vertical, de modo que no conoce en que bits se han
producido. La información del bloque recibida, sin embargo es
totalmente errónea.
b) El método de suma de comparación ni siquiera podrá detectar la presencia de errores
en el bloque.
longitud de bloque
CHECK SUM ASCII (Carácteri )
i 1
2. Supongamos que hace ordenar 15 palabras de tal manera que sea posible
corregir
Errores simples
a) ¿Cuantos dígitos de información serán necesarios?
b) ¿Cuál es el número total de dígitos del código óptimo?
c) ¿Cuántos dígitos de código serán necesario si se necesitan corregir errores
dobles?
4. (Nota: El código a considerar es de longitud fija y binaria)
Solución.
a) Para codificar 15 palabras o mensajes diferentes en un código binario de
longitud fija es necesario que 2k ≥ 15 k = 4
n
Digito de Información dig. De control palabra - código
k n-k
b) De acuerdo con el límite teórico establecido por Hamming para que un código
tenga
habilidad de corregir errores simples debe cumplirse que:
n - k ≥ log2 (1 + n) 2n-k -1≥n
2n-4 -1≥ n se cumple a partir den = 7 ósea para n ≥7.
Como se quiere que el código sea óptimo n = 7.
c) Por límite de Hamming.
s
n n n n
n k log 2 1 s 2n k
1 1 2 ...... s
t 1
Para s =2 y k =4: n
2 = n! / (2! (n-2)!)
= n (n-1) (n-2)
n n n(n 1)
2n 4
1 1 2 n n 10
2 2! (n-2)!
3.-
a) ¿Cuál es el número máximo de símbolos de información que tolera posee 4 símbolos
de control para corregir errores simples?
b) ¿Cuántas palabras podrán codificarse en este caso?
Solución.-
a) De acuerdo con el límite de Hamming para corregir errores simples:
n - k ≥ log2(1-n) 2 n - k -1 ≥ n
n - k = 4 (Símbolos de control)
24-1≥ n n =15
nmax =15( Símbolos de la palabra de código)
Como n-k =4 para n =15 k =11 (Símbolos de información)
b) Con este código se puede codificar 2k mensajes.
5. 211 = (28)(23) = (256)(8) = 2048 (Mensajes diferentes)
4.- Se desea construir un código de Hamming de 10 símbolos capaz de corregir
errores simples.
a) ¿Cuántos mensajes podrán codificarse con ese código?
b) Determinar la estructura de las palabras código (símbolos de información y control)
c) Obtener las ecuaciones de control (codificación y descodificación) y las ecuaciones
para construir el código.
d) ¿Cuál es el código que resulta si todos los símbolos de información son 1s?
Solución.-
a) Para errores simples:
n - k ≥ log2 (1 + n)
Si n =10 (10 símbolos en el código)
log2 11<4
10- k ≥ log2 (11) k≤10- log2 (11)
k = 6 (Símbolos de información)
n - k = 4 (Símbolos de control)
2k=26 = 64 (Mensajes que pueden codificarse)
b)Los símbolos de control están en las posiciones 2‟ (i = 0, 1, 2,...)
información
p1 p2 a3 p4 a5 a6 a7 p8 a9 a10
Control
Ident de la
Ident. De posición
Símbolo la posición Símbolo
a1 0001
a2 0010 a7 0111
a3 0011 a8 1000
a4 0100 a9 1001
a5 0101 a10 1010
a6 0110
Habría 4 ecuaciones de control.
r1 = a1⊕a3⊕a5⊕a7⊕a9
r2 = a2 ⊕ a3⊕a6 ⊕a7 ⊕ a10
r3 = a4 ⊕ a5 ⊕a6 ⊕a7
6. r4 = a8 ⊕ a9⊕ a10
Ecuaciones para construir código.
a1 = a3 ⊕ a5 ⊕ a6⊕ a7
a2 = a3 ⊕ a6⊕ a7⊕a10
a3 = a5 ⊕ a6⊕ a7
a4 = a9 ⊕ a10⊕
d)Si todos los símbolos de información son 1s (111111)
El código resultante es:
0 0 1 1 1 1 1 0 1 1
a1 a2 a4 a8
Si a3 = 0 en Rx
r1 = 0 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 1 = 1
r2 = 0 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 1 = 1
r3 = 1 ⊕ 1 ⊕ 1 ⊕ 1 = 0
r4 = 0 ⊕ 1 ⊕ 1 =0
=> en la posición r4 r3 r2 r1
0 0 1 1
hay error => 00112=310
4. CONCLUSIONES
El código Hamming nos permite controlar errores de simples y dobles
El código Hamming nos permite la corrección de errores de los mensajes
La paridad nos permite detección de errores en el mensaje
La suma de comprobación permite obtener un campo de comprobación de
errores para los diferentes datos que componen la trama
7. 5. RECOMENDACIONES
Utilizar la suma de comprobación para verificar si hay errores
Tener en cuenta las diferencias entre errores simples y dobles
Tener en cuenta la funcionalidad de los métodos de detección de errores
Saber aplicar los métodos de corrección de errores.
6. GLOSARIO
Bit de paridad es un dígito binario que indica si el número de bits con un
valor de 1 en un conjunto de bits es par o impar. Los bits de paridad
conforman el método de detección de errores más simple.
Detección y corrección de errores es una importante práctica para el
mantenimiento e integridad de los datos a través de canales ruidosos y
medios de almacenamiento poco confiables.