Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DEPARTAMNETO DE MATEMÁTICAS
ESTRUCTURAS DISCRETAS II
ING. MSC. ADRIANA BARRETO
GRUPOS Y CÓDIGOS
1 1 0 1 1
binario
Palabra Palabra
x Bm x1 Bm
transmitida recibida
Sea e: Bm Bn una función de codificación (m, n). Se dice que e detecta k o menos
errores si al transmitir x = e(b) con k o menos errores, entonces x 1 no es una palabra
codificada (así, x1 no puede ser x y por lo tanto no puede haberse transmitido en forma
correcta).
2. Código de Grupo.
Ahora N es un subgrupo de Bn si
Para convertir el código binario A al código binario B, las líneas de entrada deben dar una
combinación de bits de los elementos, tal como se especifica por el código A y las líneas de salida
deben generar la correspondiente combinación de bits del código B.
EJEMPLO 1: Realizar un circuito mínimo conversor de código de BCD a GRAY para 4
variables de entrada A, B, C, D, utilizando inversores, una compuerta O y compuertas No-O.
Considere las condiciones irrelevantes.
Solución:
a) Tabla funcional:
BCD GRAY
DEC
A B C D G3 G2 G1 G0
0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1
2 0 0 1 0 0 0 1 1
3 0 0 1 1 0 0 1 0
4 0 1 0 0 0 1 1 0
5 0 1 0 1 0 1 1 1
6 0 1 1 0 0 1 0 1
7 0 1 1 1 0 1 0 0
8 1 0 0 0 1 1 0 0
9 1 0 0 1 1 1 0 1
10 x x x x
: : : : :
15 x x x x
b) Variables de salida: Como el logigrama deberá realizarse con compuertas No-O, las
funciones de conmutación a la salida del conversor, deberán expresarse como producto de
maxitérminos:
G3(A,B,C,D) =A
G2(A,B,C,D) =A+B
G1(A,B,C,D) = (B + C)(B' +C')
G0(A,B,C,D) = (C + D)(C' +D'
a) Tabla funcional:
CÓDIGO
Exceso-3 8 4 -2 -1
Decimal mi
E3 E2 E1 E0 A B C D
0 0 0 1 1 3 0 0 0 0
1 0 1 0 0 4 0 1 1 1
2 0 1 0 1 5 0 1 1 0
3 0 1 1 0 6 0 1 0 1
4 0 1 1 1 7 0 1 0 0
5 1 0 0 0 8 1 0 1 1
6 1 0 0 1 9 1 0 1 0
7 1 0 1 0 10 1 0 0 1
8 1 0 1 1 11 1 0 0 0
9 1 1 0 0 12 1 1 1 1
10 0-2 x x x x
:
15 13-15 x x x x
A(E3,E2,E1,E0) = E3
B(E3,E2,E1,E0) = E2
C(E3,E2,E1,E0) = E1'
D(E3,E2,E1,E0) = E0'
Uno de los métodos más empleados para detectar y corregir errores es el código
desarrollado por Hamming. A continuación se presentan algunas definiciones iniciales:
Donde:
M = Distancia mínima
D = Bits erróneos que se detectan
C = Bits erróneos que se corrigen
Tabla 1
M D C
0 0 0
1 0 0
2 1 0
2 0 Código de
3
1 1 Hamming
3 0
4
2 1
4 0
5 3 1
2 2
Considerando a:
M=k
Entonces, la relación entre los bits de paridad y los bits del código original, está dada por la
siguiente expresión:
2k - 1 = k + n (2)
donde:
De la tabla anterior, se observa que entre más bits de seguridad se deseen en el código de
interés, el número de bits de éste aumenta considerablemente.
1 2 3 4 5 6 7
C1 C2 A C3 B C D
Cada bit de paridad se selecciona para generar paridad (par o impar) en las siguientes
posiciones:
C1 6 1,3,5,7
C2 6 2,3,6,7
C3 6 4,5,6,7
Una manera sencilla de recordar las posiciones para generar paridad de cada uno de los bits
de paridad, se muestra en la siguiente tabla:
1 2 3 4 5 6 7 Posición
C1 1 0 1 0 1 0 1 1,3,5,7
C2 0 1 1 0 0 1 1 2,3,6,7
C3 0 0 0 1 1 1 1 4,5,6,7
Por ejemplo, si se quiere transmitir 910 = 10012 con paridad par, el nuevo código será:
1 2 3 4 5 6 7
C1 C2 A C3 B C D
0 0 1 1 0 0 1 nuevo código
Para C1: En las posiciones 3, 5 y 7, se tienen dos UNOS, obteniéndose paridad par, lo
que indica que hay que colocar un CERO en la posición 1.
Para C2: En las posiciones 3, 6 y 7, se tienen dos UNOS, obteniéndose paridad par, lo
que indica que hay que colocar un CERO en la posición 2.
Para C3: En las posiciones 5, 6 y 7, se tiene un solo UNO, lo que indica que hay que
colocar un 1 en la posición 4 para tener paridad par.
EJEMPLO 3. Dado el código exceso-3 (BCD), obtener el nuevo código con distancia
mínima de 3 (M = 3) y diseñar el circuito generador de paridad.
S
O
L
U
C
I
Ó
N
a) Tabla funcional.
EJEMPLO 4. Determinar las posiciones de paridad para los bits de verificación para k=4
(distancia mínima igual a 4).
S
O
L
U
C
I
Ó
N
2k - 1 = 24 - 1 = 15 = k + n
Por tanto, el número de bits del código original, n, es igual a 11. El código a transmitir
es de 15 bits (k+n).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
C1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
C2 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
C3 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
C4 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Como los bits de verificación deben estar en una posición correspondiente a una combinación
binaria (1,2,4,8), entonces el código a transmitir es:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
C1 C2 x10 C3 x9 x8 x7 C4 x6 x5 x4 x3 x2 x1 x0
Donde: C1, C2, C3 y C4 son los bits de verificación y x10, x9, ... , x0 corresponden al código
original.
4. Describir Código de verificación de paridad.
La transmisión de datos binarios de una localización a otra es un lugar común en todos los
sistemas digitales. Se presentan cuatro ejemplos de esto:
1. Salida de datos binarios desde una computadora y que están registrándose en cinta
magnética.
2. Transmisión de datos binarios por línea telefónica, tal como entre una
computadora y una consola remota.
3. Un número se toma de la memoria de la computadora y se coloca en la unidad
aritmética, en donde se añade a otro número. La suma es luego regresada a la
memoria.
4. Información almacenada en un disco flexible se lee para cargarse en la memoria de
una computadora personal.
El proceso de transferir datos está sujeto a error, aun cuando el equipo moderno ha sido
diseñado para reducir la probabilidad de error. Sin embargo, aun errores relativamente
infrecuentes pueden causar resultados inútiles, así que es deseable detectarlos siempre que ello
sea posible. Uno de los esquemas usados más ampliamente para la detección de errores es el
método de paridad.
Un bit de paridad es un bit extra que se agrega a un grupo codificado el cual se transmite de
una localización a otra. El bit de paridad se hace ya sea 0 o 1, dependiendo del número de unos
que están contenidos en el grupo codificado.
Se usan dos métodos diferentes. En el método de paridad par el valor del bit de paridad
se escoge de tal manera que el número total de unos en el grupo codificado (incluyendo el bit de
paridad) sea un número par. Supóngase por ejemplo, que el grupo codificado es 10110. El grupo
codificado tiene tres unos. Por tanto, se añade un bit de paridad de 1 para hacer el número total
de unos un valor par. El nuevo grupo codificado, incluyendo el bit de paridad es:
1
10110
^
bit de paridad añadido
El método de paridad impar se usa exactamente de la misma manera, excepto que el bit de
paridad se escoge de tal modo que el número total de unos (incluyendo el bit de paridad) sea
un número impar. Por ejemplo, para el grupo codificado 01100, el bit de paridad asignado
sería un 1. Para el grupo 11010, el bit de paridad sería un 0.
Sin importar si se usa paridad par o impar, el bit de paridad se añade a la palabra codificada
y es transmitido como parte de la palabra codificada. Los bits del grupo codificado están
representados por A, B y C. Estos bits pudieran venir de las salidas de un conversor de código. Se
alimentan entonces a un circuito generador de paridad, el cual es un circuito lógico que examina
los bits de entrada y produce un bit de paridad de salida del valor correcto.
La siguiente tabla muestra la forma de obtener los bits de paridad para el código binario de
3 bits. Pp y Pi, son las funciones resultantes de aplicar paridad par e impar, respectivamente.
Decimal A B C Pp Pi
0 0 0 0 0 1
1 0 0 1 1 0
2 0 1 0 1 0
3 0 1 1 0 1
4 1 0 0 1 0
5 1 0 1 0 1
6 1 1 0 0 1
7 1 1 1 1 0
Debería ser aparente que este método de paridad puede detectar errores únicos pero no
puede detectar errores dobles. Esto es porque un error doble no cambiará la paridad del
grupo de bits, así que el verificador de paridad indicará ningún error. También, este método
de paridad no señala al error; esto es, no determina al bit erróneo. Para detectar y señalar
errores dobles, deberán usarse métodos más sofisticados, que permitan hacer correcciones.