Código numérico Gray

por el 31 de agosto del 2017 en Detección Control Blog

Código Gray

Este sistema de codificación no corresponde con una representación matemática real de los números. Se trata de una combinación de “1s” y “0s” que son las posibles combinaciones que puede adoptar una variable.

Partiendo de un número de bits determinado, se realizan las combinaciones de acuerdo a las normas de Gray. La principal característica de este código es que dos números consecutivos, cualquiera que sean, se diferencian solo en un bit (tienen distancia «1»). Además, es un código cíclico. Es decir, el primer número y el último también son adyacentes,  es decir, solo se diferencian en un bit.

Hasta ahora parece un poco complejo, pero vamos a insistir en la explicación para tratar de aclararlo totalmente. A continuación viene una tabla con la confección, en código Gray, de los números del 0 al 31 usando hasta 5 bits:

tabla_gray

 

 

Como se puede apreciar en la tabla anterior, el código Gray es simétrico con respecto a la línea discontinua, en todos sus bits, excepto en el de la izquierda (Gn). En este último bit los de arriba de la línea discontinua son “0” y los de abajo son “1”.

Vamos a ver como se ha ido formando dicha tabla:

Como con un bit solo se tiene dos posibilidades (vale “0” ó vale “1”) podemos codificar el Nº 0 y el Nº 1. Para poder codificar del Nº 0 al Nº 3 necesitamos dos bits. Según la regla de Gray se procede de la siguiente manera:

 

configurar_codigo_gray1

Para poder codificar desde el Nº 0 al Nº 7 se necesitan 3 bits y se procede igual que en el paso anterior:

 

configurar_codigo_gray2

De esta forma se procede sucesivamente añadiendo cada vez un bit más.

Como el Código Gray no es una expresión matemática de los números, siempre hay que convertir el valor Gray en Binario para poder realizar las operaciones matemáticas que sean necesarias para la aplicación donde se esté trabajando.

Para realizar la conversión hay que aplicar la formula siguiente para calcular el valor de cada bit:

Bit (n) = Bit (n+1)  XOR  G(n)

En donde:

Bit(n) es el bit enésimo en Binario
Bit(n+1) es el bit siguiente
G(n) es el bit enésimo en Gray
XOR es la operación lógica que se realiza entre los bits

NOTA: La operación XOR es una puerta lógica de dos entradas que suministra un “1” a la salida, solo, cuando las dos entradas son distintas. Si las dos entradas son iguales (tanto “1” como “0”) se tiene a la salida un “0”. El esquema es el siguiente:

gray_xor1

También se puede encontrar el siguiente esquema:

gray_xor2

 

A continuación vamos a aplicar esta función para convertir un número en Código Gray a Binario Puro:

 

gray-a-binario

 

Veamos este mismo esquema con un ejemplo. Vamos a convertir la expresión del Nº 4 en código Gray (0110) a código Binario (0100):

 

gray-a-binario-ejemplo

NOTA: La entrada Nº2 de la puerta Xor del Bit más significativo (M.S.B.) debe estar fija a nivel lógico “0”.

 

Deseamos que este blog post sea de su agrado.

Muchas gracias por leernos.

Etiquetas: , , ,

Lo sentimos, no hay comentarios todavía.


DEJA UN COMENTARIO

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

© Contaval 2020 Todos los derechos reservados.

Multicolor Red Green Yellow Blue Violet