Codigo Gray

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 4

Código Gray

Ir a la navegación Ir a la búsqueda
El código binario reflejado o código Gray, nombrado así en honor del
investigador Frank Gray, es un sistema de numeración binario en el que
dos números consecutivos difieren solamente en uno de sus dígitos.
El código Gray fue diseñado originalmente para prevenir señales ilegales (señales falsas o viciadas en
la representación) de los switches electromecánicos, y actualmente es usado para facilitar la corrección
de errores en los sistemas de comunicaciones, tales como algunos sistemas de televisión por cable y la
televisión digital terrestre.

Índice
 1 Nombre
 2 Historia y aplicaciones prácticas
 3 Motivación
 4 Conversiones
 4.1 Base 2 a Gray
 4.2 Gray a Base 2
 5 Referencias

Nombre
El investigador de Laboratorios Bell, Frank Gray inventó el término código binario reflejado cuando lo
patentó en 1947, remarcando que éste "no tenía nombre reconocido aún".1 Él creó el nombre basándose
en el hecho de que el código "puede ser construido a partir del código binario convencional por una
suerte de 'proceso reflejante'".
El código fue llamado posteriormente "Gray" por otros investigadores. Dos patentes en 1953 dieron
como nombre alternativo "código de Gray" para el "código binario reflejado";23 uno de ellas también
se refiere al código como "minimum error code" (código de error mínimo) y como "cyclic permutation
code" (código de permutación cíclica).3
Historia y aplicaciones prácticas
El código binario reflejado fue aplicado para acertijos matemáticos antes de ser usado para la
ingeniería. El ingeniero francés Émile Baudot le dio una aplicación al código de Gray en 1878 en
telegrafía, trabajo por el cual fue condecorado con la Legión de Honor.
El código Gray es atribuido en algunas ocasiones, en forma incorrecta,4 a Elisha Gray (en Principles of
Pulse Code Modulation, K. W. Cattermole,5 por ejemplo.)
Hasta la primera mitad de los años 1940 los circuitos lógicos digitales se realizaban con válvulas de
vacío y dispositivos electromecánicos. Los contadores necesitaban potencias muy elevadas a la entrada
y generaban picos de ruido cuando varios bits cambiaban simultáneamente. Tomando esto en cuenta,
Frank Gray inventó un método para convertir señales analógicas a grupos de código binario reflejado
utilizando un aparato diseñado con válvulas de vacío, con lo cual garantizó que en cualquier transición
variaría tan sólo un bit.
En la actualidad, el código Gray se emplea como parte del algoritmo de diseño de los mapas de
Karnaugh, los cuales son, a su vez, utilizados como "herramienta de diseño" en la implementación de
circuitos combinacionales y circuitos secuenciales. La vigencia del código Gray se debe a que un
diseño digital eficiente requerirá transiciones más simples y rápidas entre estados lógicos (0 ó 1), por
ello es que se persiste en su uso, a pesar de que los problemas de ruido y potencia se hayan reducido
con la tecnología de estado sólido de los circuitos integrados.
Utilizando el código Gray es posible también resolver el problema de las Torres de Hanói. Se puede
incluso formar un ciclo hamiltoniano o un hipercubo, en el que cada bit se puede ver como una
dimensión.
Debido a las propiedades de distancia de Hamming que posee el código Gray, es usado en ocasiones en
algoritmos genéticos.

Motivación
Las computadoras antiguas indicaban posiciones abriendo y cerrando interruptores. Utilizando tres
interruptores como entradas usando Base 2, estas dos posiciones estarían una después de la otra:
001
011
100
101

El problema con el código binario en base 2 es que con interruptores mecánicos, es realmente difícil
que todos los interruptores cambien al mismo tiempo. En la transición de los dos estados mostrados
arriba, tres interruptores cambian de sitio. En el lapso en el que los interruptores están cambiando, se
pueden presentar salidas de información espurias. Si las salidas mencionadas alimentan un circuito
secuencial, probablemente el sistema presentará un error en entrada de datos.
El código gray resuelve este problema cambiando solamente un dígito a la vez, así que no existe este
problema:
Decimal Gray Binario
0 000 000
1 001 001
2 011 010
3 010 011
4 110 100
5 111 101
6 101 110
7 100 111

tienes que tener en cuenta que para convertir de binarios a Gray los valores que deben ser sumados en
base 2 toman los siguientes valores 1+1=0, 0+0=0 , 1+0=1 y 0+1=1 esta operación de forma vertical
como se muestra en el siguiente ejemplo:
1010
1010
----
1111

Nótese que desde el 7 podría pasar a 0 con un solo cambio de switch (el más significativo pasa a cero).
Esta es la propiedad llamada "cíclica" del código de Gray.

Conversiones
Secuencia Binario Gray Secuencia Binario Gray
0 0000 0000 8 1000 1100
1 0001 0001 9 1001 1101
2 0010 0011 10 1010 1111
3 0011 0010 11 1011 1110
4 0100 0110 12 1100 1010
5 0101 0111 13 1101 1011
6 0110 0101 14 1110 1001
7 0111 0100 15 1111 1000

Base 2 a Gray
Para convertir un número binario (en Base 2) a código Gray, simplemente se le aplica una operación
XOR con el mismo número desplazado un bit a la derecha, sin tener en cuenta el acarreo.
Ejemplo: 1010 (Base 2) a gray
1010
1010
----
1111

Otros ejemplos 0111(Base 2) a gray :


0111
0111
------
0100
110101010001
110101010001
------------
101111111001

Gray a Base 2
Definimos un vector conteniendo los dígitos en gray y otro vector destinado a contener los dígitos
en Base 2
 es el dígito que se encuentra en el extremo izquierdo de la representación en código gray
 es el dígito de mayor peso y que se encuentra en el extremo izquierdo en la representación en
Base 2
Luego resulta que: con la excepción de que , la cual se puede resumir como:
El dígito de más a la izquierda en Base 2 es igual al dígito de más a la izquierda en código gray

Ejemplo Con el número en código Gray.


Lo primero es decir que: , por lo que para este caso: . Luego siguiendo con el algoritmo: resulta que:

Esto da como resultado

También podría gustarte