0% encontró este documento útil (0 votos)
101 vistas5 páginas

Códigos Ponderados y No Ponderados

Este documento explica diferentes tipos de códigos binarios, incluyendo códigos ponderados como BCD natural y BCD Aiken, así como códigos no ponderados como BCD exceso 3 y Johnson de 5 bits. También describe códigos detectores y correctores de errores.

Cargado por

Ana Gonzalez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
101 vistas5 páginas

Códigos Ponderados y No Ponderados

Este documento explica diferentes tipos de códigos binarios, incluyendo códigos ponderados como BCD natural y BCD Aiken, así como códigos no ponderados como BCD exceso 3 y Johnson de 5 bits. También describe códigos detectores y correctores de errores.

Cargado por

Ana Gonzalez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

CÓDIGO PONDERADO

Podemos definir como código ponderado, aquel que se caracteriza por tener
asignado un peso cada dígito binario, y para cada palabra código, la suma de los
pesos de los dígitos binarios que toman el valor uno es igual al dígito decimal que
representa.

Los códigos ponderados más utilizados son: BCD NATURAL y BCD AIKEN, que a
continuación, explicaremos.

Si queremos representar los números del sistema decimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 en


sistema binario, necesitamos al menos cuatro dígitos binarios. Con estos cuatro dígitos
binarios podemos obtener 16 palabras código, de las cuales sólo necesitaremos 10,
las correspondientes a 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9.

Los códigos ponderados son muy utilizados en el sistema de transmisión de


información y se caracterizan porque a cada dígito binario se le asigna un valor y la
suma de los pesos de cada palabra código es igual al dígito decimal que representa.
Es decir, si P1, P2, P3 y P4 son los pesos de los dígitos binarios y X1, X2, X3 y X4 son los
valores de dichos dígitos, entonces el dígito decimal N = P 4X4+P3X3+P2X2+P1X1 es
representado por la palabra código X4X3X2X1.

En la siguiente tabla de muestran la relación entre el sistema decimal y los códigos


binarios ponderados, BCD natural y BCD Aiken:

BCD NATURAL BCD AIKEN


DECIMAL P1P2P3P4 P1P2P3P4
8421 2421
0 0000 0000
1 0001 0001
2 0010 0010
3 0011 0011
4 0100 0100
5 0101 1011
6 0110 1100
7 0111 1101
8 1000 1110
9 1001 1111

Si observamos la tabla anterior, nos damos cuenta que el primer código coincide con
la numeración de binario natural. Sin embargo, en el otro código, sí que varía el valor
de los pesos de los dígitos, es decir en vez de ser el valor de los pesos: 8 4 2 1, es
de 2 4 2 1; por lo que el código resultante será diferente.
En ambos códigos, podemos comprobar qua cada dígito tiene un valor diferente,
y que la suma de todos los dígitos que forman cada palabra código suman el
número decimal correspondiente.

Así por ejemplo, el número 6 en decimal, es posible representarlo en BCD NATURAL


como 0110, es decir 0+4+2+0=6 y en BCD AIKEN como 1100, es decir 2+4+0+0=6.

Es evidente que la representación de algunos dígitos decimales con los pesos


BCD AIKEN no es única. Por ejemplo, el número 7 en BCD AIKEN puede ser
representado por 1101 y por 0111, sin embargo se adopta la representación mostrada
en la tabla anterior.

Para representar en BCD NATURAL o BCD AIKEN un número decimal de más de un


dígito, se convierte cada dígito por separado. Por ejemplo, el número 2009 decimal,
expresado en BCD NATURAL sería: 0010 0000 0000 1001 y en BCD AIKEN sería:
0010 0000 0000 1111.

CÓDIGOS NO PONDERADOS

Podemos definir como código no ponderado a aquel que se caracteriza por no tener
asignado un peso cada dígito binario, es decir a cada palabra código binaria se le
asigna un valor decimal cualquiera.

De todos los códigos no ponderados, estudiaremos dos: BCD EXCESO 3 y


JOHNSON DE 5 BITS.

La siguiente tabla muestra una relación del sistema decimal con los códigos BCD
EXCESO 3 y JOHNSON DE 5 BITS.

DECIMAL BCD EXCESO 3 JOHNSON 5 BITS

0 0011 00000
1 0100 00001
2 0101 00011
3 0110 00111
4 0111 01111
5 1000 11111
6 1001 11110
7 1010 11100
8 1011 11000
9 1100 10000
El código BCD EXCESO 3 se forma a partir del BCD NATURAL sumando 3 a cada
palabra código, por eso el número decimal 0 es representado por 0011 y no por
0000.

Para comprobar la representación de cualquier número digital en BCD EXCESO 3, lo


único que debemos es sumar 0011 a su correspondiente en BCD NATURAL, es decir,
si queremos representar el número decimal 5 en BCD EXCESO 3, sería: 0101 + 0011
= 1000.

Respecto al código JOHNSON DE 5 BITS, podemos decir que tiene dos ventajas
importantes:

1. Es un código fácil de generar circuitalmente.


2. Todas sus palabras se diferencian de la anterior y posterior en un solo bit.

Se utiliza muchísimo en diferentes aplicaciones, conversiones analógico-digital y


digital-analógico y en aquellas aplicaciones donde no sea tolerable la aparición de
palabras códigos transitorios erróneos.

CÓDIGOS DETECTORES Y CORRECTORES DE LA INFORMACIÓN

Son aquellos cuya función es la de detectar y corregir los posibles fallos que se
puedan producir en la transmisión de la información entre los diferentes dispositivos.
Existen diferentes factores que pueden provocar problemas en la transmisión de la
información, como ruidos o cambio en la señal eléctrica en un instante determinado.

En un código binario, la ocurrencia de un error simple en uno de los dígitos de


cualquier palabra del código puede producir otra palabra, incorrecta pero válida.

Por ejemplo: Un error en el dígito menos significativo de la palabra 0110 (número 6)


del código BCD, resulta en la palabra 0111 (número 7). Como 0111 pertenece al
código BCD, será interpretada en forma incorrecta por el receptor, ya que dicho
código ha detectado un "1" en vez de un "0" en el dígito de menor peso.

Un código detector de errores simple, posee la propiedad de que la ocurrencia


de un error simple, transforma una palabra válida en una inválida. Esta propiedad
se obtiene, haciendo que la distancia entre todas las palabras del código sea al menos
dos, es decir, que la diferencia de bits sea al menos dos.

Dentro de los códigos detectores de errores, existen aquellos que sólo son
capaces de detectar errores pero no de corregirlos. Sin embargo, existen
códigos que además de detectar errores son capaces de corregirlos, en este
caso podemos hablar de los códigos autocorrectores.

En general, se dice que un código es autocorrector, si la palabra del código


puede deducirse a partir de la palabra errónea. Supongamos un código que tiene
sólo dos palabras: 000 y 111. Si un solo error ocurre en la primera palabra, esta puede
cambiar a 001, 010 o 100. Si un solo error ocurre en la segunda, esta puede cambiar a
110, 101 o 011. Como los dos conjuntos de errores son diferentes, entonces,
asumiendo sólo un error simple, es posible determinar la palabra correcta.

Código autocorrector de errores simples: Debe poseer la cualidad corregir


errores simples, por lo que la distancia entre las palabras del código debe ser de
3.

Principios básicos para construir un código Hamming

1. A cada palabra de m dígitos del código original, se agregan k dígitos de


“chequeo” de paridad, p1, p2, ... pk , formando una nueva palabra de (m+k)
dígitos.
2. A la posición de cada uno de los (m+k) dígitos se le asigna un valor decimal,
1 al más significativo hasta m+k al menos significativo.
3. Se efectúan k “chequeos” de paridad en algunos dígitos de la palabra del
código, registrando su valor (1 o 0), dependiendo, si se ha detectado o no un
error.
4. Los “chequeos” de paridad dan origen a un número binario c1, c2, ... ck, cuyo
valor corresponde a la posición del bit erróneo, o es cero si no hay error.
5. El número k debe ser suficientemente grande para describir la posición de
cualquiera de los errores simples posibles. Consecuentemente, k debe
satisfacer la desigualdad : 2k ≥ m + k + 1

BCD Decimal
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9

Si observamos la tabla anterior, las palabras contienen 4 bits, por lo que m=4.

Con m = 4 y utilizando 2k ≥ m + k + 1 se tiene k = 3.

Número de posición
Posición de error
c3c2c1
0 (no hay error) 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

c1→p1 se selecciona para establecer paridad par entre los dígitos 1, 3, 5, 7.

c2→p2 se selecciona para establecer paridad par entre los dígitos 2, 3, 6, 7.

c3→p3 se selecciona para establecer paridad par entre los dígitos 4, 5, 6, 7.

Ejemplo para el número 4 (0100 en BCD):

Posición
1 2 3 4 5 6 7
p1 p2 m1 p3 m2 m3 m4
Mensaje original en BCD 0 1 0 0
Paridad par en 1, 3, 5, 7
1 0 1 0 0
implica p1=1
Paridad par en 2, 3, 6, 7
1 0 0 1 0 0
implica p2=2
Paridad par en 4, 5, 6, 7
1 0 0 1 1 0 0
implica p3=3

De esta forma podemos obtener el código Haming para BCD:

Posición
Dígito decimal 1 2 3 4 5 6 7
p1 p2 m1 p3 m2 m3 m4
0 0 0 0 0 0 0 0
1 1 1 0 1 0 0 1
2 0 1 0 1 0 1 0
3 1 0 0 0 0 1 1
4 1 0 0 1 1 0 0
5 0 1 0 0 1 0 1
6 1 1 0 0 1 1 0
7 0 0 0 1 1 1 1
8 1 1 1 0 0 0 0
9 0 0 1 1 0 0 1

También podría gustarte