¿cómo funciona el código gray?
convertidor de código gris
Introducción: La conversión de código Gray a binario es O(N-1), donde N es la longitud de la palabra. Uno de mis algoritmos es O(log(N)-1), donde N es la longitud de la palabra redondeada a una potencia de dos. El otro es O(N-1) (incluyendo N-1 llamadas a subrutinas), pero el código es muy compacto, especialmente si también se necesita la conversión de binario a Gray.
Un código Gray es aquel en el que los números adyacentes difieren en un símbolo. Hay muchos códigos Gray, incluso en binario. Se pueden idear en cualquier base. Cuando se utiliza Gray (o código Gray) sin especificar cuál, lo que se quiere decir es que se refleja el Gray binario. Para convertir el binario en Gray, sólo es necesario XOR el binario original sin signo con una copia de sí mismo que ha sido desplazada a la derecha un lugar. Esto es fácil de hacer con instrucciones comunes. La forma canónica de convertir Gray a binario es XOR los bits de uno en uno, empezando por los dos bits más altos, usando el nuevo bit calculado en el siguiente XOR. ¡Uf! Aquí muestro dos formas más fáciles. Robert Sherry escribió el código C real. Las declaraciones de la función hacen estos cortos y el código asume 16 bits; usted puede cambiar eso.
código decimal a gris
El código binario reflejado (RBC), también conocido simplemente como binario reflejado (RB) o código Gray en honor a Frank Gray, es una ordenación del sistema numérico binario tal que dos valores sucesivos difieren sólo en un bit (dígito binario).
Por ejemplo, la representación del valor decimal “1” en binario sería normalmente “001” y “2” sería “010”. En código Gray, estos valores se representan como “001” y “011”. De este modo, para incrementar un valor de 1 a 2 sólo es necesario cambiar un bit, en lugar de dos.
Los códigos Gray se utilizan ampliamente para evitar la salida espuria de los interruptores electromecánicos y para facilitar la corrección de errores en las comunicaciones digitales, como la televisión digital terrestre y algunos sistemas de televisión por cable.
Muchos dispositivos indican su posición cerrando y abriendo interruptores. Si ese dispositivo utiliza códigos binarios naturales, las posiciones 3 y 4 están próximas entre sí, pero los tres bits de la representación binaria son diferentes:
El problema de los códigos binarios naturales es que los interruptores físicos no son ideales: es muy poco probable que los interruptores físicos cambien de estado exactamente en sincronía. En la transición entre los dos estados mostrados anteriormente, los tres interruptores cambian de estado. En el breve período en que todos cambian, los interruptores leerán alguna posición espuria. Incluso sin el rebote de la tecla, la transición podría parecer 011 – 001 – 101 – 100. Cuando los interruptores parecen estar en la posición 001, el observador no puede decir si esa es la posición “real” 1, o un estado de transición entre otras dos posiciones. Si la salida alimenta un sistema secuencial, posiblemente a través de la lógica combinacional, entonces el sistema secuencial puede almacenar un valor falso.
cómo convertir el código binario en gris
La salida del codificador paralelo proporciona un flujo de bits en rápida sucesión. Cuando los datos están en formato binario, varios bits pueden cambiar por paso y, en algunos casos, todos los bits pueden cambiar entre cada lectura. En aplicaciones de alta velocidad, esto puede provocar errores o una programación complicada. El código gris reduce el cambio de bits a sólo un bit de datos por paso de medición a la vez.
La salida del codificador de código gris se utiliza habitualmente en aplicaciones de alta velocidad o en aquellas con grandes cantidades de ruido de señal que provocan la pérdida de datos de la señal al leer datos binarios. Los codificadores absolutos con código gris están disponibles para los protocolos de comunicación punto a punto, incluyendo el paralelo y el SSI.
La ventaja de la salida en paralelo es su rapidez: todos los datos están disponibles en tiempo real, todo el tiempo. Las desventajas son los cables voluminosos (y caros) y la longitud limitada de los mismos. La mayoría de los codificadores vienen con cables de uno o dos metros de longitud, pero una salida en paralelo que utilice una salida diferencial (push-pull) y un cableado apantallado puede extenderse hasta 100 m utilizando un cable más grueso, con una reducción de la velocidad. Las salidas de colector abierto (sinking o sourcing) pueden llegar aproximadamente a un tercio de esa distancia.
desventajas del código gris
Definición: El código gris es la categoría de codificación de cambio mínimo en la que, los dos valores consecutivos cambian por un solo bit. Más concretamente, podemos decir que es un sistema numérico binario en el que, al pasar de un paso al siguiente, sólo varía un bit.
Básicamente, el código binario se cambia a un equivalente gris para disminuir las operaciones de cambio. Como sólo se cambia un único bit en un momento determinado, se reduce la conmutación de un bit a otro.
Sabemos que la suma de los binarios 1 y 1 dará 0 como suma y 1 como acarreo. Y ya hemos discutido que el bit de acarreo debe ser ignorado, mientras que el bit de suma conseguido será puesto como el siguiente bit en el valor gris.