ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Codigo Gray

emmanuel.a11723 de Septiembre de 2014

4.856 Palabras (20 Páginas)252 Visitas

Página 1 de 20

Código Gray

Código Gray de dos bits

00 01 11 10

Código Gray de tres bits

000

001

011

010

110

111

101

100

Código Gray de cuatro bits

0000

0001

0011

0010

0110

0111

0101

0100

1100

1101

1111

1110

1010

1011

1001

1000

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 valores sucesivos difieren solamente en uno de sus dígitos.

El código Gray fue diseñado originalmente para prevenir señales espurias 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.

El investigador de Laboratorios Bell A. 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";2 3 uno de ellas también se refiere al código como "minumum error code" (código de error mínimo) y como "cyclic permutation code" (código de permutación cíclica).3

[editar] 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 solido 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.

[editar] 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:

...

011

100

...

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 se deben ser sumados en base 2 toma 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.

[editar] 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

[editar] Base 2 a Gray

Para convertir un número binario (en Base 2) a código Gray, simplemente hemos de aplicarle la puerta lógica XOR al mismo número, con 1 desplazamiento a la derecha

Ejemplo: 1010 (Base 2) a gray

1010

1010

----

1111

Otros ejemplos:

111000

111000

------

100100

110101010001

110101010001

------------

101111111001

[editar] Gray a Base 2

Tenemos 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 izquerdo de la representación en código gray

es el dígito de mayor peso y que se encuentra en el extremo izquerdo en la representación en Base 2

tenemos 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

El primer bit empezando por la izquierda del digito del código gray se respetará para la conversión a base 2, el resultado es obtener el mismo bit para el dígito binario que el que tiene en gray, para conseguir el segundo bit del binario sumaremos el primer bit del dígito del sistema binario por el segundo del sistema gray, sin tener en cuenta los acarreos y respetando la tabla de suma para binarios: 0+0=0 ; 0+1=1 ; 1+0=1 ; 1+1=10

Ejemplo: Con el número 1001 Gray

El primero de base dos es igual al primero en gray que en este caso es ( 1 )

El segundo de base dos es igual a la suma del primero de base 2 con el segundo de gray en este caso es (1)+(0)= (1)

El tercero de base dos es igual a la suma del segundo de base2 con el tercero de gray en este caso es (1)+(0)= (1)

El cuarto de base dos es igual a la suma del tercero de base dos con el cuarto de gray es este caso es (1)+(1)=10 tomamos el cero del 10 descartando el acarreo por lo que tenemos (0)

Esto da como resultado 1110

Código BCD

El BCD (el binario decimal codificado) es una forma directa asignada a un equivalente binario. Es posible asignar cargas a los bits binarios de acuerdo a sus posiciones. Las cargas en el código BCD son 8, 4, 2, 1.

Ejemplo:

Para representar el digito decimal 6 en código BCD sería:.

0110

Ya que 0 x 8 + 1 x 4 + 1 x 2 ÷ 0+1 = 6.

Es posible asignar cargas negativas a un código decimal, tal como se muestra en el código 8, 4, -2, -1. En esta caso la combinación de bits 0110 se interpreta como el digito decimal 2, l obtenerse de 0 x 8 + 1 x 4 + 1 x (-2) + 0 x (-1)=2.

Un código decimal que se ha usado en algunos computadores viejos en el código de exceso a 3. Este último es un código sin carga, cuya asignación se obtiene del correspondiente valor en BCD una vez se haya sumado 3.

Los números se representan en computadores digitales en binario o decimal a través de un codigo binario. Cuando se estén especificando los datos, el usuario gusta dar los datos en forma decimal. Las maneras decimales recibidas se almacenan internamente en el computador por medio del código decimal. Cada digito decimal requiere por lo menos cuatro elementos de almacenamiento binario. Los números decimales ses convierten a binarios cuando las operaciones aritméticas se hacen internamente con números representados en binario. Es posible también realizar operaciones aritméticas directamente en decimal con todos los números ya dejados en forma codificada. Por ejemplo, el número decimal 395, cuando se convierte aq binario es igual a 112221211 y consiste en nueve digitos binarios. El mismo número representado alternamente en BCD, ocupa cuatro bits para cada digito decimal para un total de 12 bits:001110010101.

Decimal Binario BCD

395 112221211 001110010101.

En el código BCD: los cuatro primeros bits representan el 3.Los siguientes cuatro representan el 9 y los últimos cuatro el 5.

Es muy importante comprender la diferencia

...

Descargar como (para miembros actualizados) txt (33 Kb)
Leer 19 páginas más »
Disponible sólo en Clubensayos.com