Ordenación de valores binarios, utilizados para posicionamiento y corrección de errores.
El código binario reflejado ( RBC ), también conocido como binario reflejado ( RB ) o código Gray en honor a Frank Gray , es un ordenamiento del sistema de numeración binario de tal manera que dos valores sucesivos difieren en un solo bit (dígito binario).
Por ejemplo, la representación del valor decimal "1" en binario normalmente sería " 001 " y "2" sería " 010 ". En código Gray, estos valores se representan como " 001 " y " 011 ". De esa manera, incrementar un valor de 1 a 2 requiere solo un bit para cambiar, en lugar de dos.
Muchos dispositivos indican la posición mediante interruptores de cierre y apertura. Si ese dispositivo usa códigos binarios naturales , las posiciones 3 y 4 están una al lado de la otra, pero los tres bits de la representación binaria difieren:
El problema con 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 que se muestran arriba, los tres interruptores cambian de estado. En el breve período mientras todos están cambiando, los interruptores leerán alguna posición falsa. Incluso sin rebote de teclas , la transición podría verse como 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 ingresa a un sistema secuencial , posiblemente a través de lógica combinacional , entonces el sistema secuencial puede almacenar un valor falso.
Este problema se puede resolver cambiando sólo un interruptor a la vez, de modo que nunca haya ambigüedad de posición, lo que resulta en códigos que asignan a cada uno de un conjunto contiguo de números enteros , o a cada miembro de una lista circular, una palabra de símbolos como que no hay dos palabras de código idénticas y que cada dos palabras de código adyacentes difieren exactamente en un símbolo. Estos códigos también se conocen como códigos unitarios-distanciados , [4] [5] [6] [7] [8] de una sola distancia , de un solo paso , monostróficos [9] [10] [7] [8] o sincópicos , [9] en referencia a la distancia de Hamming de 1 entre códigos adyacentes.
Invención
La patente de Gray introduce el término "código binario reflejado"
En principio, puede haber más de un código de este tipo para una longitud de palabra determinada, pero el término código Gray se aplicó por primera vez a un código binario particular para números enteros no negativos, el código Gray reflejado binario o BRGC . El investigador de Bell Labs, George R. Stibitz, describió dicho código en una solicitud de patente de 1941, concedida en 1943. [11] [12] [13] Frank Gray introdujo el término código binario reflejado en su solicitud de patente de 1947, señalando que el código tenía " todavía ningún nombre reconocido". [14] Derivó el nombre del hecho de que "puede construirse a partir del código binario convencional mediante una especie de proceso de reflexión".
En la codificación estándar del Código Gray, el bit menos significativo sigue un patrón repetitivo de 2 activados, 2 desactivados (… 11001100 …); el siguiente dígito es un patrón de 4 encendidos, 4 apagados; el i -ésimo bit menos significativo es un patrón de 2 i encendido 2 i apagado. El dígito más significativo es una excepción a esto: para un código Gray de n bits, el dígito más significativo sigue el patrón 2 n -1 encendido, 2 n -1 apagado, que es la misma secuencia (cíclica) de valores que para el código Gray. segundo dígito más significativo, pero se desplazó hacia adelante 2 n -2 lugares. La versión de cuatro bits de esto se muestra a continuación:
Visualizado como un recorrido de los vértices de un teseracto.Código gris a lo largo de la recta numérica
Para el decimal 15, el código pasa al decimal 0 con un solo cambio de interruptor. Esto se denomina propiedad cíclica o de adyacencia del código. [15]
En las comunicaciones digitales modernas , los códigos Gray desempeñan un papel importante en la corrección de errores . Por ejemplo, en un esquema de modulación digital como QAM , donde los datos normalmente se transmiten en símbolos de 4 bits o más, el diagrama de constelación de la señal está dispuesto de modo que los patrones de bits transmitidos por puntos de constelación adyacentes difieran sólo en un bit. Combinando esto con la corrección de errores directa capaz de corregir errores de un solo bit, es posible que un receptor corrija cualquier error de transmisión que cause que un punto de la constelación se desvíe hacia el área de un punto adyacente. Esto hace que el sistema de transmisión sea menos susceptible al ruido .
A pesar de que Stibitz describió este código [11] [12] [13] antes que Gray, el código binario reflejado recibió posteriormente el nombre de Gray por otros que lo usaron. Dos solicitudes de patente diferentes de 1953 utilizan "código Gray" como nombre alternativo para el "código binario reflejado"; [16] [17] uno de ellos también enumera "código de error mínimo" y "código de permutación cíclica" entre los nombres. [17] Una solicitud de patente de 1954 se refiere al "código Gray de Bell Telephone". [18] Otros nombres incluyen "código binario cíclico", [12] "código de progresión cíclico", [19] [12] "binario permutante cíclico" [20] o "binario permutado cíclico" (CPB). [21] [22]
El código Gray a veces se atribuye erróneamente al inventor de dispositivos eléctricos del siglo XIX, Elisha Gray . [13] [23] [24] [25]
Historia y aplicación práctica.
acertijos matemáticos
Los códigos binarios reflejados se aplicaron a acertijos matemáticos antes de que los ingenieros los conocieran.
El código Gray reflejado binario representa el esquema subyacente del clásico rompecabezas de anillos chino , un mecanismo de rompecabezas mecánico secuencial descrito por el francés Louis Gros en 1872. [26] [13]
Puede servir como guía de solución para el problema de las Torres de Hanoi , basado en un juego del francés Édouard Lucas en 1883. [27] [28] [29] [30] De manera similar, las llamadas Torres de Bucarest y Torres de Las configuraciones del juego de Klagenfurt producen códigos Gray ternarios y pentarios. [31]
Cuando el ingeniero francés Émile Baudot pasó de utilizar un código de 6 unidades (6 bits) a un código de 5 unidades para su sistema de impresión telegráfica , en 1875 [33] o 1876, [34] [35] ordenó los caracteres alfabéticos en su rueda de impresión usando un código binario reflejado, y asignó los códigos usando solo tres de los bits a las vocales. Con las vocales y consonantes ordenadas en orden alfabético, [36] [37] [38] y otros símbolos colocados apropiadamente, el código de caracteres de 5 bits ha sido reconocido como un código binario reflejado. [13] Este código se conoció como código Baudot [39] y, con cambios menores, finalmente se adoptó como Alfabeto Telegráfico Internacional No. 1 (ITA1, CCITT-1) en 1932. [40] [41] [38]
Casi al mismo tiempo, el alemán-austriaco Otto Schäffler [Delaware] [42] demostró otra impresión de telégrafo en Viena utilizando un código binario reflejado de 5 bits para el mismo propósito, en 1874. [43] [13]
Conversión de señal analógica a digital
Frank Gray , que se hizo famoso por inventar el método de señalización que llegó a utilizarse para la televisión en color compatible, inventó un método para convertir señales analógicas en grupos de códigos binarios reflejados utilizando aparatos basados en tubos de vacío . Presentado en 1947, el método y el aparato obtuvieron una patente en 1953, [14] y el nombre de Gray se adhirió a los códigos. El aparato de " tubo PCM " que Gray patentó fue fabricado por Raymond W. Sears de Bell Labs, en colaboración con Gray y William M. Goodall, quienes le dieron crédito a Gray por la idea del código binario reflejado. [44]
Parte de la portada de la patente de Gray, que muestra el tubo PCM (10) con el código binario reflejado en la placa (15)
Gray estaba más interesado en utilizar los códigos para minimizar errores en la conversión de señales analógicas a digitales; sus códigos todavía se utilizan hoy para este propósito.
Codificadores de posición
Codificador rotatorio para dispositivos de medición de ángulos marcados en código Gray reflejado binario de 3 bits (BRGC)Un codificador rotatorio absoluto de código Gray con 13 pistas. La carcasa, el disco interruptor y la fuente de luz se encuentran en la parte superior; El elemento sensor y los componentes de soporte están en la parte inferior.
Los códigos Gray se utilizan en codificadores de posición lineales y rotativos ( codificadores absolutos y codificadores de cuadratura ) con preferencia a la codificación binaria ponderada. Esto evita la posibilidad de que, cuando cambian varios bits en la representación binaria de una posición, se produzca una lectura errónea porque algunos de los bits cambian antes que otros.
Por ejemplo, algunos codificadores rotatorios proporcionan un disco que tiene un patrón de código Gray eléctricamente conductor en anillos concéntricos (pistas). Cada pista tiene un contacto de resorte metálico estacionario que proporciona contacto eléctrico al patrón de código conductor. Juntos, estos contactos producen señales de salida en forma de código Gray. Otros codificadores emplean mecanismos sin contacto basados en sensores ópticos o magnéticos para producir señales de salida del código Gray.
Independientemente del mecanismo o la precisión de un codificador en movimiento, el error de medición de posición puede ocurrir en posiciones específicas (en los límites del código) porque el código puede estar cambiando en el momento exacto en que se lee (muestrea). Un código de salida binario podría provocar errores importantes en la medición de la posición porque es imposible hacer que todos los bits cambien exactamente al mismo tiempo. Si en el momento de muestrear la posición algunos bits han cambiado y otros no, la posición muestreada será incorrecta. En el caso de codificadores absolutos, la posición indicada puede estar muy alejada de la posición real y, en el caso de codificadores incrementales, esto puede alterar el seguimiento de la posición.
Por el contrario, el código Gray utilizado por los codificadores de posición garantiza que los códigos para dos posiciones consecutivas cualesquiera diferirán sólo en un bit y, en consecuencia, sólo un bit puede cambiar a la vez. En este caso, el error de posición máximo será pequeño, indicando una posición adyacente a la posición real.
Algoritmos genéticos
Debido a las propiedades de distancia de Hamming de los códigos Gray, a veces se utilizan en algoritmos genéticos . [15] Son muy útiles en este campo, ya que las mutaciones en el código permiten cambios en su mayoría incrementales, pero ocasionalmente un solo cambio de bit puede provocar un gran salto y conducir a nuevas propiedades.
En las comunicaciones digitales modernas , los códigos grises 1D y 2D desempeñan un papel importante en la prevención de errores antes de aplicar una corrección de errores . Por ejemplo, en un esquema de modulación digital como QAM , donde los datos se transmiten normalmente en símbolos de 4 bits o más, el diagrama de constelación de la señal está dispuesto de modo que los patrones de bits transmitidos por puntos de constelación adyacentes difieran sólo en un bit. Combinando esto con la corrección de errores directa capaz de corregir errores de un solo bit, es posible que un receptor corrija cualquier error de transmisión que cause que un punto de la constelación se desvíe hacia el área de un punto adyacente. Esto hace que el sistema de transmisión sea menos susceptible al ruido .
Códigos 4-PSK
Códigos 8-PSK
Códigos 16-QAM
Comunicación entre dominios de reloj.
Los diseñadores de lógica digital utilizan ampliamente los códigos Gray para pasar información de recuento de varios bits entre lógica síncrona que opera a diferentes frecuencias de reloj. Se considera que la lógica opera en diferentes "dominios de reloj". Es fundamental para el diseño de chips grandes que funcionan con muchas frecuencias de reloj diferentes.
Pedalear por estados con el mínimo esfuerzo
Si un sistema tiene que recorrer secuencialmente todas las combinaciones posibles de estados de encendido y apagado de algún conjunto de controles, y los cambios de los controles requieren gastos no triviales (por ejemplo, tiempo, desgaste, trabajo humano), un código Gray minimiza el número de estableciendo cambios en un solo cambio para cada combinación de estados. Un ejemplo sería probar un sistema de tuberías para todas las combinaciones de configuraciones de sus válvulas operadas manualmente.
Se puede construir un código Gray equilibrado [52] que cambie cada bit con la misma frecuencia. Dado que los cambios de bits se distribuyen uniformemente, esto es óptimo de la siguiente manera: los códigos Gray equilibrados minimizan el recuento máximo de cambios de bits para cada dígito.
Contadores de código gris y aritmética.
George R. Stibitz ya utilizó en 1941 un código binario reflejado en un dispositivo contador de impulsos binarios. [11] [12] [13]
Un uso típico de los contadores de código Gray es crear un búfer de datos FIFO (primero en entrar, primero en salir) que tiene puertos de lectura y escritura que existen en diferentes dominios de reloj. Los contadores de entrada y salida dentro de un FIFO de doble puerto a menudo se almacenan usando código Gray para evitar que se capturen estados transitorios no válidos cuando el conteo cruza dominios de reloj. [53]
Los punteros de lectura y escritura actualizados deben pasarse entre dominios de reloj cuando cambian, para poder rastrear el estado FIFO vacío y lleno en cada dominio. Cada bit de los punteros se muestrea de forma no determinista para esta transferencia de dominio de reloj. Entonces, para cada bit, se propaga el valor antiguo o el nuevo. Por lo tanto, si más de un bit en el puntero multibit cambia en el punto de muestreo, se puede propagar un valor binario "incorrecto" (ni nuevo ni antiguo). Al garantizar que solo se puede cambiar un bit, los códigos Gray garantizan que los únicos valores muestreados posibles sean el valor multibit nuevo o antiguo. Normalmente se utilizan códigos Gray de potencia de dos.
A veces, los buses digitales en sistemas electrónicos se utilizan para transmitir cantidades que solo pueden aumentar o disminuir una a la vez, por ejemplo, la salida de un contador de eventos que pasa entre dominios de reloj o a un convertidor de digital a analógico. La ventaja de los códigos Gray en estas aplicaciones es que las diferencias en los retrasos de propagación de los muchos cables que representan los bits del código no pueden hacer que el valor recibido pase por estados que estén fuera de la secuencia del código Gray. Esto es similar a la ventaja de los códigos Gray en la construcción de codificadores mecánicos; sin embargo, la fuente del código Gray es un contador electrónico en este caso. El contador en sí debe contar en código Gray, o si el contador funciona en binario, entonces el valor de salida del contador debe volver a sincronizarse después de que se haya convertido a código Gray, porque cuando un valor se convierte de binario a código Gray, [nb 1 ] es posible que las diferencias en los tiempos de llegada de los bits de datos binarios al circuito de conversión de binario a Gray signifiquen que el código pueda pasar brevemente por estados que están muy fuera de secuencia. Agregar un registro sincronizado después del circuito que convierte el valor de conteo a código Gray puede introducir un ciclo de latencia de reloj, por lo que contar directamente en código Gray puede ser ventajoso. [54]
Para producir el siguiente valor de conteo en un contador de código Gray, es necesario tener alguna lógica combinacional que incremente el valor de conteo actual que está almacenado. Una forma de incrementar un número de código Gray es convertirlo en código binario ordinario, [55] agregarle uno con un sumador binario estándar y luego convertir el resultado nuevamente a código Gray. [56] Otros métodos de conteo en código Gray se analizan en un informe de Robert W. Doran , incluida la toma de la salida de los primeros pestillos de las chanclas maestro-esclavo en un contador de ondas binario. [57]
Direccionamiento de código gris
Como la ejecución del código de programa generalmente causa un patrón de acceso a la memoria de instrucciones de direcciones localmente consecutivas, las codificaciones de bus que usan direccionamiento de código Gray en lugar de direccionamiento binario pueden reducir significativamente el número de cambios de estado de los bits de dirección, reduciendo así el consumo de energía de la CPU en algunos casos bajos. -diseños de potencia. [58] [59]
Construyendo unnorte-bit código Gray
Los primeros pasos del método de reflexión y prefijo.Permutación de código Gray de 4 bits
La lista de códigos Gray reflejada binariamente para n bits se puede generar recursivamente a partir de la lista para n − 1 bits reflejando la lista (es decir, enumerando las entradas en orden inverso), anteponiendo las entradas en la lista original con un 0 binario , anteponiendo el entradas en la lista reflejada con un binario 1 y luego concatenando la lista original con la lista invertida. [13] Por ejemplo, generando la lista n = 3 a partir de la lista n = 2:
El código Gray de un bit es G 1 = ( 0,1 ). Se puede considerar que esto se construye recursivamente como arriba a partir de un código Gray de cero bits G 0 = ( Λ ) que consta de una sola entrada de longitud cero. Este proceso iterativo de generar G n +1 a partir de G n aclara las siguientes propiedades del código reflectante estándar:
G n es una permutación de los números 0, ..., 2 n − 1. (Cada número aparece exactamente una vez en la lista).
G n está integrado como la primera mitad de G n +1 .
Por tanto, la codificación es estable , en el sentido de que una vez que aparece un número binario en G n aparece en la misma posición en todas las listas más largas; por lo que tiene sentido hablar del valor del código Gray reflectante de un número: G ( m ) = el mésimo código Gray reflectante, contando desde 0.
Cada entrada en G n difiere sólo en un bit de la entrada anterior. (La distancia de Hamming es 1.)
La última entrada en G n difiere sólo en un bit de la primera entrada. (El código es cíclico).
Estas características sugieren un método simple y rápido para traducir un valor binario al código Gray correspondiente. Cada bit se invierte si el siguiente bit superior del valor de entrada se establece en uno. Esto se puede realizar en paralelo mediante una operación de desplazamiento de bits y exclusiva o si están disponibles: el enésimo código Gray se obtiene calculando . Anteponer un bit 0 deja el orden de las palabras de código sin cambios, anteponer un bit 1 invierte el orden de las palabras de código. Si se invierten los bits en la posición de las palabras de código, se invierte el orden de los bloques vecinos de palabras de código. Por ejemplo, si el bit 0 se invierte en una secuencia de palabras de código de 3 bits, se invierte el orden de dos palabras de código vecinas.
Por lo tanto, realizar una exclusiva o en un bit en la posición con el bit en la posición deja intacto el orden de las palabras en código if e invierte el orden de los bloques de palabras en código if . Ahora bien, esta es exactamente la misma operación que el método de reflexión y prefijo para generar el código Gray.
Se puede utilizar un método similar para realizar la traducción inversa, pero el cálculo de cada bit depende del valor calculado del siguiente bit superior, por lo que no se puede realizar en paralelo. Suponiendo que es el vigésimo bit codificado en Gray ( que es el bit más significativo) y el vigésimo bit codificado en binario ( que es el bit más significativo), la traducción inversa se puede dar de forma recursiva: y . Alternativamente, decodificar un código Gray en un número binario se puede describir como una suma de prefijo de los bits en el código Gray, donde cada operación de suma individual en la suma de prefijo se realiza en módulo dos.
Para construir el código Gray reflejado binario de forma iterativa, en el paso 0 comience con , y en el paso encuentre la posición del bit del 1 menos significativo en la representación binaria de y voltee el bit en esa posición en el código anterior para obtener el siguiente código. . Las posiciones de los bits comienzan en 0, 1, 0, 2, 0, 1, 0, 3, .... [nb 2] Consulte encontrar el primer conjunto para conocer algoritmos eficientes para calcular estos valores.
Conversión hacia y desde código Gray
Las siguientes funciones en C convierten entre números binarios y sus códigos Gray asociados. Si bien puede parecer que la conversión de Gray a binario requiere que cada bit se maneje de uno en uno, existen algoritmos más rápidos. [60] [55] [nota 1]
typedef unsigned int uint ;// Esta función convierte un número binario sin signo en código Gray binario reflejado. uint BinaryToGray ( uint num ) { return num ^ ( num >> 1 ); // El operador >> se desplaza a la derecha. El operador ^ es exclusivo o. }// Esta función convierte un número de código Gray binario reflejado en un número binario. uint GrayToBinary ( uint num ) { uint máscara = num ; while ( máscara ) { // Cada bit de código Gray tiene un código exclusivo con todos los bits más significativos. máscara >>= 1 ; número ^= máscara ; } devolver número ; }// Una versión más eficiente para códigos Gray de 32 bits o menos mediante el uso de técnicas SWAR (SIMD dentro de un registro). // Implementa una función XOR de prefijo paralelo. Las declaraciones de asignación pueden estar en cualquier orden. // // Esta función se puede adaptar para códigos Gray más largos agregando pasos.uint GrayToBinary32 ( uint número ) { número ^= número >> 16 ; número ^= número >> 8 ; número ^= número >> 4 ; número ^= número >> 2 ; número ^= número >> 1 ; devolver número ; } // Una variante de cuatro bits a la vez cambia un número binario (abcd)2 a (abcd)2 ^ (00ab)2, luego a (abcd)2 ^ (00ab)2 ^ (0abc)2 ^ (000a )2.
En los procesadores más nuevos, la cantidad de instrucciones ALU en el paso de decodificación se puede reducir aprovechando el conjunto de instrucciones CLMUL . Si MASK es la cadena binaria constante de unos que termina con un solo dígito cero, entonces la multiplicación sin acarreo de MASK con la codificación gris de x siempre dará x o su negación bit a bit.
Tipos especiales de códigos Gray
En la práctica, el "código Gray" casi siempre se refiere a un código Gray reflejado binario (BRGC). Sin embargo, los matemáticos han descubierto otros tipos de códigos Gray. Al igual que los BRGC, cada uno consta de una lista de palabras, donde cada palabra se diferencia de la siguiente en solo un dígito (cada palabra tiene una distancia de Hamming de 1 desde la siguiente palabra).
Códigos grises connortebits y de longitud inferior a 2norte
Es posible construir códigos Gray binarios con n bits con una longitud inferior a 2 n , si la longitud es par. Una posibilidad es comenzar con un código Gray equilibrado y eliminar pares de valores al principio y al final, o en el medio. [61] La secuencia OEIS A290772 [62] proporciona el número de posibles secuencias de Gray de longitud 2 n que incluyen cero y utilizan el número mínimo de bits.
norte-ario código Gray
Existen muchos tipos especializados de códigos Gray además del código Gray reflejado binario. Uno de esos tipos de código Gray es el código Gray n -ario , también conocido como código Gray no booleano . Como su nombre lo indica, este tipo de código Gray utiliza valores no booleanos en sus codificaciones.
Por ejemplo, un código Gray triario ( ternario ) usaría los valores 0,1,2. [31] El código Gray ( n , k ) es el código Gray n -ario con k dígitos. [63]
La secuencia de elementos en el código (3, 2)-Gray es: 00,01,02,12,11,10,20,21,22. El código ( n , k )-Gray puede construirse de forma recursiva, como BRGC, o puede construirse de forma iterativa . Se presenta un algoritmo para generar iterativamente el código ( N , k )-Gray (en C ):
// entradas: base, dígitos, valor // salida: Gray // Convierte un valor en un código Gray con la base y los dígitos dados. // La iteración a través de una secuencia de valores daría como resultado una secuencia // de códigos Gray en los que sólo cambia un dígito a la vez. void toGray ( base sin signo , dígitos sin signo , valor sin signo , gris sin signo [ dígitos ]) { baseN sin signo [ dígitos ]; // Almacena el número de base N ordinario, un dígito por entrada unsigned i ; // La variable de bucle // Coloca el número baseN normal en la matriz baseN. Para base 10, 109 // se almacenaría como [9,0,1] for ( i = 0 ; i < dígitos ; i ++ ) { baseN [ i ] = valor % base ; valor = valor / base ; } // Convierte el número baseN normal en el equivalente en código Gray. Tenga en cuenta que // el bucle comienza en el dígito más significativo y desciende. desplazamiento sin signo = 0 ; while ( i -- ) { // El dígito gris se desplaza hacia abajo por la suma de los // dígitos superiores. gris [ i ] = ( baseN [ i ] + cambio ) % base ; cambio = cambio + base - gris [ i ]; // Resta de la base para que el desplazamiento sea positivo } } // EJEMPLOS // entrada: valor = 1899, base = 10, dígitos = 4 // salida: baseN[] = [9,9,8,1], gris[] = [0,1,7,1] // entrada: valor = 1900, base = 10, dígitos = 4 // salida: baseN[] = [0,0,9,1], gris[] = [0, 1,8,1]
Existen otros algoritmos de código Gray para códigos ( n , k ) -Gray. El código ( n , k )-Gray producido por el algoritmo anterior es siempre cíclico; algunos algoritmos, como el de Guan, [63] carecen de esta propiedad cuando k es impar. Por otro lado, aunque con este método sólo cambia un dígito a la vez, se puede cambiar ajustando (en bucle de n − 1 a 0). En el algoritmo de Guan, la cuenta sube y baja alternativamente, de modo que la diferencia numérica entre dos dígitos del código Gray es siempre uno.
Los códigos Gray no están definidos de forma única, porque una permutación de las columnas de dicho código también es un código Gray. El procedimiento anterior produce un código en el que cuanto menor es el significado de un dígito, más a menudo cambia, lo que lo hace similar a los métodos de conteo normales.
Véase también Sistema numérico binario sesgado , una variante del sistema numérico ternario donde como máximo dos dígitos cambian en cada incremento, ya que cada incremento se puede realizar con una operación de acarreo de un dígito como máximo .
Código gris equilibrado
Aunque el código Gray binario reflejado es útil en muchos escenarios, no es óptimo en ciertos casos debido a una falta de "uniformidad". [52] En códigos Gray equilibrados , el número de cambios en diferentes posiciones de coordenadas es lo más cercano posible. Para hacer esto más preciso, sea G un ciclo Gray completo R -ario que tiene una secuencia de transición ; los recuentos de transición ( espectro ) de G son la colección de números enteros definidos por
Un código Gray es uniforme o uniformemente equilibrado si sus recuentos de transición son todos iguales, en cuyo caso tenemos
para todos k . Claramente, cuando , dichos códigos existen sólo si n es una potencia de 2. [64] Si n no es una potencia de 2, es posible construir códigos binarios bien equilibrados donde la diferencia entre dos recuentos de transición sea como máximo 2; de modo que (combinando ambos casos) cada recuento de transición sea o . [52] Los códigos Gray también pueden equilibrarse exponencialmente si todos sus recuentos de transición son potencias de dos adyacentes, y dichos códigos existen para cada potencia de dos. [65]
Por ejemplo, un código Gray equilibrado de 4 bits tiene 16 transiciones, que se pueden distribuir uniformemente entre las cuatro posiciones (cuatro transiciones por posición), lo que lo hace uniformemente equilibrado: [52]
0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0
0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0
0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0
0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1
mientras que un código Gray equilibrado de 5 bits tiene un total de 32 transiciones, que no se pueden distribuir uniformemente entre las posiciones. En este ejemplo, cuatro posiciones tienen seis transiciones cada una y una tiene ocho: [52]
Ahora mostraremos una construcción [66] y una implementación [67] para códigos Gray binarios bien balanceados que nos permiten generar un código Gray balanceado de n dígitos para cada n . El principio fundamental es construir inductivamente un código Gray de ( n + 2) dígitos dado un código Gray G de n dígitos de tal manera que se conserve la propiedad equilibrada. Para hacer esto, consideramos particiones de en un número par L de bloques no vacíos de la forma
donde , , y ). Esta partición induce un código Gray de dígitos dado por
Si definimos las multiplicidades de transición
es el número de veces que el dígito en la posición i cambia entre bloques consecutivos en una partición, entonces para el código Gray ( n + 2) dígitos inducido por esta partición el espectro de transición es
La parte delicada de esta construcción es encontrar una partición adecuada de un código Gray equilibrado de n dígitos de manera que el código inducido por él permanezca equilibrado, pero para esto sólo importan las multiplicidades de transición; unir dos bloques consecutivos sobre una transición de dígitos y dividir otro bloque en otra transición de dígitos produce un código Gray diferente con exactamente el mismo espectro de transición , por lo que se pueden, por ejemplo, [65] designar las primeras transiciones en el dígito como aquellas que se encuentran entre dos bloques. Se pueden encontrar códigos uniformes cuando y , y esta construcción también se puede extender al caso R -ario. [66]
Códigos Gray a largo plazo
Los códigos Gray de largo plazo (o espacio máximo ) maximizan la distancia entre cambios consecutivos de dígitos en la misma posición. Es decir, la longitud mínima de ejecución de cualquier bit permanece sin cambios durante el mayor tiempo posible. [68]
Códigos grises monótonos
Los códigos monótonos son útiles en la teoría de redes de interconexión, especialmente para minimizar la dilatación de conjuntos lineales de procesadores. [69]
Si definimos el peso de una cadena binaria como el número de unos en la cadena, entonces, aunque claramente no podemos tener un código Gray con peso estrictamente creciente, es posible que queramos aproximarnos a esto haciendo que el código se ejecute a través de dos cadenas adyacentes. pesos antes de llegar al siguiente.
Podemos formalizar el concepto de códigos Gray monótonos de la siguiente manera: considere la partición del hipercubo en niveles de vértices que tienen el mismo peso, es decir
para . Estos niveles satisfacen . Sea el subgrafo de inducido por y sean las aristas en . Un código Gray monótono es entonces una ruta hamiltoniana de modo que siempre que llegue antes en la ruta, entonces .
Una construcción elegante de códigos Gray monótonos de n dígitos para cualquier n se basa en la idea de construir recursivamente subtrayectos de longitud que tengan aristas en . [69] Definimos , siempre que o , y
de lo contrario. Aquí, hay una permutación adecuadamente definida y se refiere a la ruta P con sus coordenadas permutadas por . Estos caminos dan lugar a dos códigos Gray monótonos de n dígitos y están dados por
La elección de cuál garantiza que estos códigos sean efectivamente códigos Gray resulta ser . Los primeros valores de se muestran en la siguiente tabla.
Estos códigos Gray monótonos se pueden implementar de manera eficiente de tal manera que cada elemento posterior se pueda generar en tiempo O ( n ). El algoritmo se describe más fácilmente mediante corrutinas .
Los códigos monótonos tienen una conexión interesante con la conjetura de Lovász , que establece que todo gráfico transitivo de vértice conectado contiene un camino hamiltoniano. El subgrafo de "nivel medio" es transitivo por vértices (es decir, su grupo de automorfismo es transitivo, de modo que cada vértice tiene el mismo "entorno local" y no puede diferenciarse de los demás, ya que podemos reetiquetar las coordenadas así como las coordenadas). dígitos binarios para obtener un automorfismo ) y el problema de encontrar un camino hamiltoniano en este subgrafo se denomina "problema de niveles medios", que puede proporcionar información sobre la conjetura más general. La pregunta ha sido respondida afirmativamente para , y la construcción anterior para códigos monótonos asegura un camino hamiltoniano de longitud al menos 0,839 N , donde N es el número de vértices en el subgrafo de nivel medio. [70]
Código Beckett-Gray
Otro tipo de código Gray, el código Beckett-Gray , lleva el nombre del dramaturgo irlandés Samuel Beckett , que estaba interesado en la simetría . Su obra " Quad " cuenta con cuatro actores y está dividida en dieciséis períodos de tiempo. Cada período termina con uno de los cuatro actores entrando o saliendo del escenario. La obra comienza y termina con un escenario vacío, y Beckett quería que cada subconjunto de actores apareciera en el escenario exactamente una vez. [71] Claramente, el conjunto de actores que se encuentran actualmente en el escenario puede representarse mediante un código Gray binario de 4 bits. Beckett, sin embargo, puso una restricción adicional al guión: quería que los actores entraran y salieran para que el actor que hubiera estado más tiempo en el escenario fuera siempre el que saliera. Luego, los actores podrían representarse mediante una cola de primero en entrar, primero en salir , de modo que (de los actores en el escenario) el actor que se retira de la cola sea siempre el que entró primero en la cola. [71] Beckett no pudo encontrar un código Beckett-Gray para su obra y, de hecho, una lista exhaustiva de todas las secuencias posibles revela que no existe tal código para n = 4. Hoy se sabe que tales códigos sí existen para n = 2, 5, 6, 7 y 8, y no existen para n = 3 o 4. Se puede encontrar un ejemplo de un código Beckett-Gray de 8 bits en Art of Computer Programming de Donald Knuth . [13] Según Sawada y Wong, el espacio de búsqueda para n = 6 se puede explorar en 15 horas, y más deSe han encontrado 9500 soluciones para el caso n = 7. [72]
Códigos de serpiente en la caja
Longitudes máximas de serpientes ( L s ) y bobinas ( L c ) en el problema de las serpientes en la caja para dimensiones n de 1 a 4
Los códigos de serpiente en la caja , o serpientes , son las secuencias de nodos de caminos inducidos en un gráfico de hipercubo de n dimensiones , y los códigos de bobina en la caja, [73] o bobinas , son las secuencias de nodos de Ciclos inducidos en un hipercubo. Consideradas como códigos Gray, estas secuencias tienen la propiedad de poder detectar cualquier error de codificación de un solo bit. Los códigos de este tipo fueron descritos por primera vez por William H. Kautz a finales de los años cincuenta; [5] Desde entonces, se han realizado muchas investigaciones para encontrar el código con el mayor número posible de palabras en clave para una dimensión de hipercubo determinada.
Código Gray de pista única
Otro tipo más de código Gray es el código Gray de vía única (STGC) desarrollado por Norman B. Spedding [74] [75] y refinado por Hiltgen, Paterson y Brandestini en Códigos Gray de vía única (1996). [76] [77] El STGC es una lista cíclica de P codificaciones binarias únicas de longitud n tal que dos palabras consecutivas difieren exactamente en una posición, y cuando la lista se examina como una matriz P × n , cada columna es un desplazamiento cíclico de la primera columna. [78]
Versión animada y codificada por colores del rotor STGC.
El nombre proviene de su uso con codificadores rotatorios , donde los contactos detectan una cantidad de pistas, lo que da como resultado para cada una una salida de 0 o 1 . Para reducir el ruido debido a que diferentes contactos no cambian exactamente en el mismo momento, preferiblemente se configuran las pistas de modo que los datos emitidos por los contactos estén en código Gray. Para obtener una alta precisión angular, se necesitan muchos contactos; Para lograr al menos 1° de precisión, se necesitan al menos 360 posiciones distintas por revolución, lo que requiere un mínimo de 9 bits de datos y, por tanto, el mismo número de contactos.
Si todos los contactos se colocan en la misma posición angular, entonces se necesitan 9 pistas para obtener un BRGC estándar con al menos 1° de precisión. Sin embargo, si el fabricante mueve un contacto a una posición angular diferente (pero a la misma distancia del eje central), entonces el "patrón de anillo" correspondiente debe girarse en el mismo ángulo para obtener el mismo resultado. Si la broca más importante (el anillo interior en la Figura 1) se gira lo suficiente, coincide exactamente con el siguiente anillo. Dado que ambos anillos son idénticos, se puede cortar el anillo interior y mover el sensor de ese anillo al anillo idéntico restante (pero desplazado en ese ángulo con respecto al otro sensor de ese anillo). Esos dos sensores en un solo anillo forman un codificador de cuadratura. Eso reduce el número de pistas para un codificador angular de "resolución de 1°" a 8 pistas. No es posible reducir aún más el número de pistas con BRGC.
Durante muchos años, Torsten Sillke [79] y otros matemáticos creyeron que era imposible codificar la posición en una sola pista de modo que las posiciones consecutivas diferían en un solo sensor, a excepción del codificador de cuadratura de 2 sensores y 1 pista. Entonces, para aplicaciones en las que 8 pistas eran demasiado voluminosas, la gente usaba codificadores incrementales de una sola pista (codificadores de cuadratura) o codificadores de "codificador de cuadratura + muesca de referencia" de 2 pistas.
Norman B. Spedding, sin embargo, registró una patente en 1994 con varios ejemplos que demuestran que era posible. [74] Aunque no es posible distinguir 2 n posiciones con n sensores en una sola pista, es posible distinguir cerca de esa cantidad. Etzion y Paterson conjeturan que cuando n es en sí mismo una potencia de 2, n sensores pueden distinguir como máximo 2 n − 2 n posiciones y que para el número primo n el límite es 2 n − 2 posiciones. [80] Los autores continuaron generando un código de pista única de 504 posiciones de longitud 9 que creen que es óptimo. Dado que este número es mayor que 2· 8 = 256, cualquier código requiere más de 8 sensores, aunque un BRGC podría distinguir 512 posiciones con 9 sensores.
Aquí se reproduce un STGC para P = 30 y n = 5:
Cada columna es un desplazamiento cíclico de la primera columna, y de cualquier fila a la siguiente solo cambia un bit. [81]
La naturaleza de vía única (como una cadena de código) es útil en la fabricación de estas ruedas (en comparación con BRGC), ya que solo se necesita una vía, lo que reduce su costo y tamaño. La naturaleza del código Gray es útil (en comparación con los códigos en cadena , también llamados secuencias de De Bruijn ), ya que solo un sensor cambiará a la vez, por lo que la incertidumbre durante una transición entre dos estados discretos solo será más o menos una unidad de ángulo. medición que el dispositivo es capaz de resolver. [82]
Código Gray de pista única de 9 bits que muestra una resolución angular de un grado.
Desde que se agregó este ejemplo de 30 grados, ha habido mucho interés en ejemplos con mayor resolución angular. En 2008, Gary Williams, [83] basándose en un trabajo anterior [80] descubrió un código gris de pista única de 9 bits que proporciona una resolución de 1 grado. Este código gris se utilizó para diseñar un dispositivo real que se publicó en el sitio Thingiverse . Este dispositivo [84] fue diseñado por etzenseep (Florian Bauer) en septiembre de 2022.
Aquí se reproduce un STGC para P = 360 y n = 9:
Código Gray bidimensional
Un diagrama de constelación codificado en Gray para 16- QAM rectangular
Los códigos Gray bidimensionales se utilizan en la comunicación para minimizar el número de errores de bits en puntos adyacentes de modulación de amplitud en cuadratura (QAM) de la constelación . En una codificación típica, los puntos adyacentes horizontales y verticales de la constelación difieren en un solo bit, y los puntos adyacentes diagonales difieren en 2 bits. [85]
Los códigos Gray bidimensionales también tienen usos en esquemas de identificación de ubicaciones , donde el código se aplicaría a mapas de área, como una proyección de Mercator de la superficie terrestre, y una función de distancia bidimensional cíclica apropiada, como la métrica de Mannheim, se usaría para calcular la distancia entre dos ubicaciones codificadas, combinando así las características de la distancia de Hamming con la continuación cíclica de una proyección de Mercator. [86]
Exceso de código Gray
Si se extrae una subsección de un valor de código específico de ese valor, por ejemplo, los últimos 3 bits de un código gris de 4 bits, el código resultante será un "código gris en exceso". Este código muestra la propiedad de contar hacia atrás en esos bits extraídos si el valor original aumenta aún más. La razón de esto es que los valores codificados en gris no muestran el comportamiento de desbordamiento, conocido en la codificación binaria clásica, cuando aumentan más allá del valor "más alto".
Ejemplo: el código Gray de 3 bits más alto, 7, está codificado como (0)100. Sumar 1 da como resultado el número 8, codificado en gris como 1100. Los últimos 3 bits no se desbordan y cuentan hacia atrás si aumenta aún más el código original de 4 bits.
Cuando se trabaja con sensores que generan múltiples valores codificados en gris en serie, se debe prestar atención a si el sensor produce esos múltiples valores codificados en un único código gris o como valores separados, ya que de lo contrario podría parecer que los valores están contando. hacia atrás cuando se espera un "desbordamiento".
Hay varios códigos binarios similares a los códigos Gray, que incluyen:
Los códigos Datex, también conocidos como códigos Giannini (1954), descritos por Carl P. Spaulding, [9] [89] [90] [91] [92] [8] utilizan una variante del código O'Brien II.
Los códigos utilizados por Varec (ca. 1954), [93] [94] [95] [96] utilizan una variante del código I de O'Brien, así como variantes del código Gray de base 12 y base 16.
Código lucal (1959) [1] [2] [57] también conocido como código binario reflejado modificado (MRB) [1] [2] [nb 3]
El código Gillham (1961/1962), [90] [97] [8] [98] [99] utiliza una variante del código Datex y el código O'Brien II.
Código de Leslie y Russell (1964) [100] [10] [101] [97]
Código Petherick (1953), [19] [105] [106] [107] [55] [103] [nb 4] también conocido como código Royal Aircraft Establishment (RAE). [108]
Códigos O'Brien I y II (1955) [109] [110] [111] [91] [92] [103] (Un código O'Brien tipo I [nb 5] ya fue descrito por Frederic A. Foss de IBM [112] [113] y utilizado por Varec en 1954. Más tarde, también se conoció como código Watts o código decimal reflejado de Watts (WRD) y, a veces, se lo denomina ambiguamente código Gray modificado binario reflejado [114] [20] . [21] [115] [116] [117] [118] [119] [120] [nb 1] [nb 3] Datex ya utilizaba un código O'Brien tipo II en 1954. [nb 4] )
Código Gray exceso-3 (1956) [121] (también conocido como código Gray exceso-3 , [91] [92] [8] Código Gray exceso 3, código reflejo exceso-3, código Gray exceso, [103] Código Gray exceso , código Gray 10-exceso-3 o código Gray-Stibitz), descrito por Frank P. Turvey Jr. de ITT . [121]
Códigos Tompkins I y II (1956) [4] [110] [111] [91] [92] [103]
Código Glixon (1957), a veces también llamado ambiguamente código Gray modificado [122] [55] [123] [124] [110] [111] [91] [92] [103] [nb 3] [nb 5]
^ abc Al aplicar una regla de inversión simple , el código Gray y el código O'Brien I se pueden traducir al código binario puro 8421 y al código Aiken 2421 , respectivamente, para facilitar las operaciones aritméticas. [DO]
^ Secuencia 0, 1, 0, 2, 0, 1, 0, 3,… (secuencia A007814 en la OEIS ).
^ abc Hay varias variantes del código Gray que se denominan "modificados" de algún tipo: el código Glixon a veces se denomina código Gray modificado. [D] El código Lucal también se llama código binario reflejado modificado (MRB). [E] El código O'Brien I o código Watts a veces se denomina código Gray modificado binario reflejado. [F]
^ abcd Al intercambiar e invertir filas de tres bits, el código O'Brien II y el código Petherick se pueden transferir entre sí.
^ abcd Al intercambiar dos pares de filas de bits, desplazar individualmente cuatro filas de bits e invertir una de ellas, el código Glixon y el código O'Brien I se pueden transferir entre sí.
^ Otros códigos BCD de unidad de distancia incluyen el Libaw-Craig de 5 bits no relacionado con el código Gray y el código 1-2-1 .
^ Dependiendo de la aplicación de destino de un código, los pesos de Hamming de un código pueden ser propiedades importantes más allá de las consideraciones teóricas de codificación, también por razones físicas. En algunas circunstancias, se deben omitir los estados de todo despejado y/o todo listo (por ejemplo, para evitar condiciones no conductoras o de cortocircuito), puede ser deseable mantener el peso más alto utilizado lo más bajo posible (por ejemplo, para reducir la potencia). consumo del circuito lector) o para mantener pequeña la variación de los pesos utilizados (por ejemplo, para reducir el ruido acústico o las fluctuaciones de corriente).
^ abc Para los códigos Gray BCD, Paul y Klar, el número de pistas de lectura necesarias se puede reducir de 4 a 3 si la inversión de una de las pistas intermedias es aceptable.
^ abcdef Para los códigos O'Brien I y II y Petherick, Susskind, Klar, así como para los códigos Gray Excess-3, se puede derivar un complemento a 9 invirtiendo el dígito binario más significativo (cuarto).
^ Para el código Tompkins II, se puede derivar un complemento a 9 invirtiendo los primeros tres dígitos e intercambiando los dos dígitos binarios del medio.
Referencias
^ abc Lucal, Harold M. (diciembre de 1959). "Operaciones aritméticas para computadoras digitales utilizando un binario reflejado modificado". Transacciones IRE en Computadoras Electrónicas . CE-8 (4): 449–458. doi :10.1109/TEC.1959.5222057. ISSN 0367-9950. S2CID 206673385.(10 páginas)
^ abc Sellers, Jr., Frederick F.; Hsiao, Mu-Yue; Bearnson, Leroy W. (noviembre de 1968). Lógica de detección de errores para computadoras digitales (1ª ed.). Nueva York, Estados Unidos: McGraw-Hill Book Company . págs. 152-164. LCCN 68-16491. OCLC 439460.
^ Gray, Joel (marzo de 2020). "Comprensión del código Gray: un sistema de codificación confiable". Graycode.es . Sección: Conclusión . Consultado el 30 de junio de 2023 .
^ abcd Tompkins, Howard E. (septiembre de 1956) [16 de julio de 1956]. "Códigos decimales binarios de unidad de distancia para conmutación de dos vías". Transacciones IRE en Computadoras Electrónicas . Correspondencia. CE-5 (3). Escuela Moore de Ingeniería Eléctrica , Universidad de Pensilvania , Filadelfia, Pensilvania, EE.UU.: 139. doi :10.1109/TEC.1956.5219934. ISSN 0367-9950. Archivado desde el original el 18 de mayo de 2020 . Consultado el 18 de mayo de 2020 .(1 página)
^ ab Susskind, Alfred Kriss; Ward, John Erwin (28 de marzo de 1958) [1957, 1956]. "III.F. Códigos unidad-distancia / VI.E.2. Códigos binarios reflejados". Escrito en Cambridge, Massachusetts, EE.UU. En Susskind, Alfred Kriss (ed.). Notas sobre técnicas de conversión analógico-digital . Libros de tecnología en ciencia e ingeniería. vol. 1 (3 ed.). Nueva York, EE. UU.: Technology Press del Instituto Tecnológico de Massachusetts / John Wiley & Sons, Inc. / Chapman & Hall, Ltd. págs. 3-10–3-16 [3-13–3-16], 6-65 –6-60 [6-60].(x+416+2 páginas) (NB. El contenido del libro fue preparado originalmente por miembros del personal del Servomechanisms Laboraratory , Departamento de Ingeniería Eléctrica, MIT , para los Programas Especiales de Verano llevados a cabo en 1956 y 1957. El "código de tipo lectura" de Susskind " es en realidad una variante menor del código que se muestra aquí con las dos filas de bits más significativas intercambiadas para ilustrar mejor las simetrías. Además, al intercambiar dos filas de bits e invertir una de ellas, el código se puede transferir al código Petherick, mientras que al intercambiar e invirtiendo dos filas de bits, el código se puede transferir al código O'Brien II.)
^ ab Chinal, Jean P. (enero de 1973). "3.3. Códigos de distancia unitaria". Escrito en París, Francia. Métodos de diseño de sistemas digitales. Traducido por Preston, Alan; Verano, Arthur (1ª ed. en inglés). Berlín, Alemania: Akademie-Verlag / Springer-Verlag . pag. 50.doi :10.1007/978-3-642-86187-1 . ISBN978-0-387-05871-9. S2CID 60362404. Licencia nº 202-100/542/73. N.º de pedido 7617470(6047) ES 19 B 1 / 20 K 3 . Consultado el 21 de junio de 2020 .(xviii+506 páginas) (NB. El libro original francés de 1967 se llamó "Techniques Booléennes et Calculateurs Arithmétiques", publicado por Éditions Dunod [fr] ).
^ Manual militar de abcdef: codificadores: ángulo del eje a digital (PDF) . Departamento de Defensa de Estados Unidos . 30 de septiembre de 1991. MIL-HDBK-231A. Archivado (PDF) desde el original el 25 de julio de 2020 . Consultado el 25 de julio de 2020 .(NB. Reemplaza MIL-HDBK-231(AS) (1970-07-01).)
^ abc Spaulding, Carl P. (12 de enero de 1965) [9 de marzo de 1954]. «Sistema de codificación y traducción digital» (PDF) . Monrovia, California, Estados Unidos: Datex Corporation. Patente estadounidense 3165731A . Número de serie 415058. Archivado (PDF) desde el original el 5 de agosto de 2020 . Consultado el 21 de enero de 2018 .(28 páginas)
^ ab Russell, A. (agosto de 1964). "Algunos códigos binarios y un nuevo código de cinco canales". Control (Sistemas, Instrumentación, Procesamiento de Datos, Automatización, Gestión, incorporando Automatización Progreso) . Características especiales. 8 (74). Londres, Reino Unido: Morgan-Grampain (Publishers) Limited: 399–404 . Consultado el 22 de junio de 2020 .(6 páginas)
^ abc Stibitz, George Robert (12 de enero de 1943) [26 de noviembre de 1941]. "Contador binario". Nueva York, Estados Unidos: Bell Telephone Laboratories, Incorporated . Patente estadounidense 2.307.868 . Número de serie 420537 . Consultado el 24 de mayo de 2020 . pag. 2, columna derecha, filas 43–73: […] Se obtendrá una idea más clara de la posición de las bolas después de cada pulso si el conjunto de bolas está representado por un número que tenga un número similar de dígitos, cada uno de los cuales puede tener uno de dos valores arbitrarios, por ejemplo 0 y 1. Si la posición superior se llama 0 y la posición inferior […] 1, entonces la configuración del contador […] se puede leer de izquierda a derecha como 0.100.000. […] A continuación se muestra una traducción del número de pulsos recibidos a esta forma de notación binaria para los primeros dieciséis pulsos recibidos en las primeras cinco bolas […] Número de pulso […] Notación binaria […][1] (4 páginas)
^ abcde Winder, C. Farrell (octubre de 1959). "Los codificadores de ángulo de eje ofrecen una alta precisión" (PDF) . Industrias Electrónicas . 18 (10). Compañía Chilton : 76–80. Archivado desde el original (PDF) el 28 de septiembre de 2020 . Consultado el 14 de enero de 2018 . pag. 78: […] El tipo de rueda de código más popular en codificadores ópticos contiene un patrón de código binario cíclico diseñado para dar una secuencia cíclica de salidas "on-off". El código binario cíclico también se conoce como código de progresión cíclico, código binario reflejado y código Gray. Este código fue originado por GR Stibitz , de Bell Telephone Laboratories , y fue propuesto por primera vez para sistemas de modulación de código de pulso por Frank Gray , también de BTL. De ahí el nombre Código Gray. El código Gray o cíclico se utiliza principalmente para eliminar la posibilidad de errores en la transición del código que podrían dar lugar a grandes ambigüedades. […]
^ ab Gray, Frank (17 de marzo de 1953) [13 de noviembre de 1947]. Comunicación de código de pulso (PDF) . Nueva York, Estados Unidos: Bell Telephone Laboratories, Incorporated . Patente estadounidense 2.632.058 . Número de serie 785697. Archivado (PDF) desde el original el 5 de agosto de 2020 . Consultado el 5 de agosto de 2020 .(13 páginas)
^ ab Goldberg, David Edward (1989). Algoritmos genéticos en búsqueda, optimización y aprendizaje automático (1 ed.). Reading, Massachusetts, Estados Unidos: Addison-Wesley . Bibcode : 1989gaso.book.....G.
^ Breckman, Jack (31 de enero de 1956) [31 de diciembre de 1953]. Circuito de codificación (PDF) . Long Branch, Nueva Jersey, Estados Unidos: Secretario del Ejército de Estados Unidos . Patente estadounidense 2.733.432 . Número de serie 401738. Archivado (PDF) desde el original el 5 de agosto de 2020 . Consultado el 5 de agosto de 2020 .(8 páginas)
^ ab Ragland, conde Albert; Schultheis, Jr., Harry B. (11 de febrero de 1958) [16 de octubre de 1953]. Sistema de control de posición de código binario sensible a la dirección (PDF) . North Hollywood, California, Estados Unidos: Bendix Aviation Corporation. Patente estadounidense 2.823.345 . Número de serie 386524. Archivado (PDF) desde el original el 5 de agosto de 2020 . Consultado el 5 de agosto de 2020 .(10 páginas)
^ Domeshek, Sol; Reiner, Stewart (24 de junio de 1958) [8 de enero de 1954]. Sistema de Rectificación Automática (PDF) . Secretario de Marina de Estados Unidos . Patente estadounidense 2.839.974 . Número de serie 403085. Archivado (PDF) desde el original el 5 de agosto de 2020 . Consultado el 5 de agosto de 2020 .(8 páginas)
^ abc Petherick, Edward John (octubre de 1953). Un sistema decimal cíclico progresivo codificado en binario para representar números (Nota técnica MS15). Farnborough, Reino Unido: Royal Aircraft Establishment (RAE).(4 páginas) (NB. A veces denominado sistema decimal codificado en binario y codificado cíclicamente ).
^ ab Evans, David Silvester (1960). Fundamentos de instrumentación digital (1 ed.). Londres, Reino Unido: Hilger & Watts Ltd. Consultado el 24 de mayo de 2020 .(39 páginas)
^ ab Evans, David Silvester (marzo de 1961). "Capítulo tres: lectura directa de escalas codificadas". Datos digitales: su derivación y reducción para análisis y control de procesos (1 ed.). Londres, Reino Unido: Hilger & Watts Ltd / Interscience Publishers . págs. 18-23 . Consultado el 24 de mayo de 2020 . pag. 20-23: […] Decodificación. […] Para decodificar códigos CPB o WRD, se puede aplicar una simple regla de inversión. Las lecturas de las pistas superiores determinan la forma en que se traducen las pistas inferiores. La regla de inversión se aplica línea por línea para el CPB y para el WRD se aplica década por década o línea por línea. Por lo tanto, comenzando con la pista superior o de cambio más lento del CPB, si el resultado es impar (1), el valor de la siguiente pista debe invertirse, es decir, 0 por 1 y 1 por 0. Sin embargo, si la primera pista es par (0 ), la segunda pista se deja como leída, es decir, 0 para 0 y 1 para 1. Nuevamente, si la lectura resultante de la segunda pista es impar, la lectura de la tercera pista se invierte y así sucesivamente. Cuando un impar se cambia a par, la línea de abajo no se invierte y cuando un par se cambia a impar, la línea de abajo se invierte. El resultado de aplicar esta regla al patrón […] es el patrón binario puro (PB) […] donde a cada pista o dígito se le puede dar un valor numérico definido (en este caso 1, 2, 4, 8, etc.) . […] El uso de la regla de inversión línea por línea en el código WRD produce [un] patrón [de código 1, 2, 4, 2 ] donde nuevamente a los dígitos se les pueden dar valores numéricos y sumar década por década. La suma de los dígitos puede resultar muy útil, por ejemplo, en un sistema de escaneo de alta velocidad; pero en un sistema de decodificación paralelo […], lo habitual es tratar cada cuarteto binario o década como una entidad. En otras palabras, si la primera década o la más significativa es impar, la segunda década se rectifica o complementa invirtiendo la pista D y así sucesivamente, siendo el resultado el patrón repetitivo de [código WRD rectificado]. Esto es algo extremadamente fácil de lograr ya que el único cambio requerido es la inversión del significado de la pista D o dígito complementario. […](8+82 páginas) (NB. El autor no menciona a Gray en absoluto y llama al código Gray estándar "Código binario permutado cíclico" (CPB), el índice del libro lo enumera erróneamente como "código binario puro cíclico".)
^ Cattermole, Kenneth W. (1969). Escrito en Harlow, Essex, Reino Unido. Principios de la modulación de código de pulsos (1 ed.). Londres, Reino Unido / Nueva York, Estados Unidos: Iliffe Books Ltd. / American Elsevier Publishing Company, Inc. págs. 245, 434. ISBN978-0-444-19747-4. LCCN 78-80432. SBN 444-19747-8. pag. 245: […] Parece haber cierta confusión sobre la atribución de este código, porque dos inventores llamados Gray han sido asociados con él. Cuando escuché el nombre por primera vez, supuse que se refería a Elisha Gray , y Heath da testimonio de su uso. Mucha gente lo interpreta como una referencia a Frank Gray de Bell Telephone Laboratories , quien en 1947 propuso por primera vez su uso en la codificación de tubos: su patente figura en la bibliografía. […](2+448+2 páginas)
^ Gros, Luc-Agathon-Louis (1872). Théorie du baguenodier par un clerc de notaire lyonnais (en francés) (1 ed.). Lyon, Francia: Aimé Vingtrinier . Archivado desde el original el 3 de abril de 2017 . Consultado el 17 de diciembre de 2020 .[2](2+16+4 páginas y 4 páginas desplegables) (NB. Este folleto se publicó de forma anónima, pero se sabe que el autor es Louis Gros).
^ Lucas, Édouard (noviembre de 1883). La tour d'Hanoï: Véritable casse tête annamite - Jeu rapporté du Tonkin par le Professeur N. Claus (de Siam) Mandarin du Collège Li Sou Stian! (en francés). Imprimerie Paul Bousrez, Tours.(NB. N. Claus de Siam es un anagrama de Lucas d'Amiens, seudónimo del autor Édouard Lucas .)
^ de Parville, Henri [en francés] , ed. (27 de diciembre de 1883). "La tour d'Hanoï, véritable casse-tête annamite, jeu rapporté du Tonkin par le professeur N. Claus (de Siam), mandarin du collège Li-Sou-Stian. Un vrai casse-tête, en efecto, mais interessant. Nous ne saurions mieux remercier le mandarin de son aimable intent à l'égard d'un profane qu'en signalant la Tour d'Hanoï aux personnespatientes posedées par le démon du jeu". Journal des Débats Politiques et Littéraires (Revisar). Revue des science (en francés) (edición matinal). París, Francia: 1–2 [2]. arca:/12148/bpt6k462461g. Archivado desde el original el 18 de diciembre de 2020 . Consultado el 18 de diciembre de 2020 .(1 página)
^ Lucas, Édouard (1979) [1892]. Récréations mathématiques (en francés). vol. 3 (Reedición de la Biblioteca Albert Blanchard). pag. 58.(La primera edición de este libro se publicó póstumamente).
^ ab Herter, Félix; De memoria, Günter (14 de noviembre de 2018) [09 de agosto de 2018, 12 de agosto de 2017, 9 de agosto de 2017, 22 de abril de 2016]. "Enumeración de códigos grises sin bucles y la Torre de Bucarest" (PDF) . Informática Teórica . 748 . Berlín, Alemania: 40–54. arXiv : 1604.06707 . doi :10.1016/j.tcs.2017.11.017. ISSN 0304-3975. S2CID 4014870. Archivado (PDF) desde el original el 16 de diciembre de 2020 . Consultado el 16 de diciembre de 2020 .[4] (15/18/19/24 páginas)
^ Zeman, Johann; Fischer, Fernando, eds. (1877). "Einige neuere Vorschläge zur mehrfachen Telegraphie: A. Absatzweise vielfache Telegraphie". Revista Polytechnisches de Dingler (en alemán). 226 . Augsburgo, Alemania: JG Cotta'sche Buchhandlung: 499–507. Archivado desde el original el 21 de diciembre de 2020 . Consultado el 21 de diciembre de 2020 . pag. 499: […] Der um die Mitte des J[ahres] 1874 patenti[e]rte, ebenfalls dem Highton 'schen verwandte Typendrucker des französischen Telegraphen-Verwaltungsbeamten Baudot wurde bei seiner 1875 patenti[e]rten Weiterentwicklung in einen fünffachen umgewandelt [… ]
^ Butrica, Andrew J. (21 de junio de 1991). "Baudot, Jean Maurice Émile". En Froehlich, Fritz E.; Kent, Allen ; Hall, Carolyn M. (eds.). La enciclopedia de telecomunicaciones de Froehlich/Kent: volumen 2: baterías para códigos-telecomunicaciones . vol. 2. Marcel Dekker Inc. / Prensa CRC . págs. 31–34. ISBN0-8247-2901-3. LCCN 90-3966 . Consultado el 20 de diciembre de 2020 . pag. 31: […] En 1876 se construyó un prototipo de Baudot (4 años de fabricación). El transmisor tenía 5 teclas similares a las de un piano. Los mensajes se enviaban en un código especial de 5 elementos ideado por Baudot […]
^ Fischer, Eric N. (20 de junio de 2000). "La evolución de los códigos de caracteres, 1874-1968". arca:/13960/t07x23w8s . Consultado el 20 de diciembre de 2020 . […] En 1872, [Baudot] comenzó a investigar hacia un sistema de telégrafo que permitiría a múltiples operadores transmitir simultáneamente a través de un solo cable y, a medida que se recibieran las transmisiones, las imprimiría en caracteres alfabéticos ordinarios en una tira de papel. Recibió una patente para dicho sistema el 17 de junio de 1874. […] En lugar de un retraso variable seguido de un pulso de una sola unidad, el sistema de Baudot utilizaba seis unidades de tiempo uniformes para transmitir cada carácter. […] sus primeros telégrafos probablemente utilizaron el código de seis unidades […] que atribuye a Davy en un artículo de 1877. […] en 1876 Baudot rediseñó su equipo para utilizar un código de cinco unidades. Sin embargo, a veces todavía se necesitaban la puntuación y los dígitos, por lo que adoptó de Hughes el uso de dos caracteres especiales de espacio entre letras y figuras que harían que la impresora cambiara entre cajas al mismo tiempo que avanzaba el papel sin imprimir. El código de cinco unidades que comenzó a utilizar en ese momento […] estaba estructurado para adaptarse a su teclado […], que controlaba dos unidades de cada carácter con interruptores accionados con la mano izquierda y las otras tres unidades con la mano derecha. […][5][6]
^ Rothen, Timoteo (25 de diciembre de 1884). "Le télégraphe imprimeur Baudot". Journal Télégraphique (en francés). VIII/#16 (12). Berna, Suiza: Le Bureau International des Administrations Télégraphiques: 241–253 [249]. eISSN 2725-738X. ISSN 2223-1420. arca:/12148/bpt6k5725454q. Archivado desde el original el 21 de diciembre de 2020 . Consultado el 20 de diciembre de 2020 .
^ Pendry, Henry Walter (1920) [octubre de 1919]. Escrito en Londres, Reino Unido. El sistema telegráfico de impresión Baudôt (2 ed.). Londres, Bath, Melbourne, Nueva York: Sir Isaac Pitman and Sons, Ltd. págs. LCCN 21005277. OCLC 778309351. OL 6633244M . Consultado el 20 de diciembre de 2020 .(vii+184 páginas) (NB. Se publicó una primera edición en 1913.)
^ ab MacMillan, David M. (27 de abril de 2010) [25 de abril de 2010, 23 de abril de 2010]. "Códigos que no cuentan: algunos imprimen códigos telegráficos como productos de sus tecnologías (con especial atención al teletipo)". lemur.com . Revisión 3. Mineral Point, Wisconsin, EE.UU. Archivado desde el original el 18 de diciembre de 2020 . Consultado el 20 de diciembre de 2020 .
^ Escrito en Lisboa, Portugal. Convention télégraphique internationale de Saint-Pétersbourg et Règlement et tarifs y anexos, Revision de Lisbonne, 1908 / Extraits de la publicación: Documents de la Conférence télégraphique internationale de Lisbonne (en francés). Berna, Suiza: Bureau Internationale de L'Union Télégraphique . 1909 [1908].
^ "Capítulo IX. Señales de transmisión, artículo 35. Señales de transmisión de los alfabetos télegraphiques internationaux 'nos 1 et 2, señales del código Morse, de l'appareil Hughes et de l'appareil Siemens". Escrito en Madrid, España. Règlement télégraphique anexo à la convención internacional de télécomunicaciones - protocolo final de auditoría règlement - Madrid, 1932 (PDF) (en francés). Berna, Suiza: Bureau Internationale de L'Union Télégraphique . 1933 [1932]. págs. 31–40 [33]. Archivado (PDF) desde el original el 21 de diciembre de 2020 . Consultado el 21 de diciembre de 2020 .(1+188 páginas) [7]
^ "Capítulo IX. Señales de Transmisión. Artículo 35. Señales de Transmisión de los Alfabetos Telegráficos Internacionales Nos. 1 y 2, Señales de Código Morse y Señales de los Instrumentos Hughes y Siemens". Reglamento Telegráfico Anejo al Convenio Internacional de Telecomunicaciones - Protocolo Final del Reglamento Telegráfico - Madrid 1932 (PDF) (en inglés y francés). Londres, Reino Unido: Oficina General de Correos / Oficina de Papelería de Su Majestad . 1933 [1932]. págs. 32–40 [34]. 43-152-2/18693. Archivado (PDF) desde el original el 21 de diciembre de 2020 . Consultado el 21 de diciembre de 2020 .(1+2*120+26 páginas) [8]
^ Zemanek, Heinrich "Heinz" Josef (1 de diciembre de 1983). Otto Schäffler (1838-1928). Pionier des Telephons, der Telegraphie und der Lochkarte sowie Erbauer der ersten Wiener Telephonzentrale . Blätter für Technikgeschichte (en alemán e inglés). vol. 41–43 (1979–1981) (1 ed.). Viena, Austria: Technisches Museum für Industrie und Gewerbe , Forschungsinstitut für Technikgeschichte/ Springer-Verlag . págs. 81-118. ISBN3-21181779-4. ISSN 0067-9127. OCLC 952698275.
^ Zemanek, Heinrich "Heinz" Josef (7 de junio de 1976). "Prehistoria e historia de la informática en Europa central". Escrito en Viena, Austria. Taller internacional sobre gestión del conocimiento de requisitos . AFIPS '76: Actas de la conferencia y exposición nacional de informática del 7 al 10 de junio de 1976, junio de 1976. Vol. 1, núm. 1. Nueva York, EE.UU.: Federación Estadounidense de Sociedades de Procesamiento de Información , Asociación para Maquinaria de Computación . págs. 15-20. doi :10.1145/1499799.1499803. ISBN978-1-4503-7917-5. S2CID 14114959. Archivado desde el original el 17 de diciembre de 2020 . Consultado el 17 de diciembre de 2020 . pag. 17: […] En 1874, Schaeffler [de] inventó otro telégrafo de impresión , un sistema cuádruple como el Baudot , pero mecánicamente más sofisticado. El telégrafo Hughes tenía dos dedos que giraban sincrónicamente, uno en el emisor y otro en el receptor. Mediante un teclado similar a un piano, el operador seleccionaba una letra y así hacía contacto con el dedo giratorio en la dirección correspondiente. Dado que el dedo receptor estaba en la misma dirección en ese momento, el receptor podría imprimir la letra correcta. Los telégrafos impresos de Baudot y Schaeffler utilizan un código binario de cinco bits. ... ¡El código de Schaeffler es un código binario reflejado! Lo que F. Gray patentó en 1953 para el PCM , Schaeffler lo había aplicado en su telégrafo en 1874, y por una razón similar: la fiabilidad. Tenía dedos de contacto que detectaban en cinco levas consecutivamente todas las combinaciones; el derecho activa la impresión. Si los dedos deben realizar un número mínimo de movimientos, la solución es el código binario reflejado. Para Schaeffler, esta idea era menor. Más exactamente, el código está descrito en una carta del empleado de Correos de Austria, J[ohann] N[epomuk] Teufelhart, insertada allí como nota a pie de página y contando que Schaeffler encontró el código combinando barras de madera con las diferentes combinaciones hasta tener el mejor solución. Otro empleado del Correo, Alexander Wilhelm Lambert de Linz, afirma haber mostrado este código a Schaeffler ya en 1872, pero esta afirmación no está clara y no puede comprobarse. […](6 páginas)
^ Goodall, William M. (enero de 1951). "Televisión por modulación de código de pulsos". Revista técnica del sistema Bell . 30 (1): 33–49. doi :10.1002/j.1538-7305.1951.tb01365.x.(NB. Presentado oralmente ante la Convención Nacional de la IRE, Nueva York, marzo de 1949.)
^ Wakerly, John F. (1994). Diseño digital: principios y prácticas . Nueva Jersey, Estados Unidos: Prentice Hall . págs. 48–49, 222. ISBN0-13-211459-3.(NB. Las dos secciones de la página tomadas en conjunto dicen que los K-maps están etiquetados con un código Gray. La primera sección dice que están etiquetados con un código que cambia solo un bit entre entradas y la segunda sección dice que dicho código se llama Gray código.)
^ Marrón, Frank Markham (2012) [2003, 1990]. "3.9.2 Mapas". Razonamiento booleano: la lógica de las ecuaciones booleanas (reedición de la 2ª ed.). Mineola, Nueva York, EE.UU.: Dover Publications, Inc. p. 49.ISBN978-0-486-42785-0. pag. 49: […] El mapa de Karnaugh ordena los argumentos de los discriminantes según el código binario reflejado, también llamado código Gray. […](xii+291+3 páginas) 1ª edición
^ Händler, Wolfgang (1958). Ein Minimisierungsverfahren zur Synthese von Schaltkreisen (Minimisierungsgraphen) (Disertación) (en alemán). Potsdam, Alemania: Technische Hochschule Darmstadt . D 17.(73 páginas+aprox.) [9]
^ Berger, Erich R.; Handler, Wolfgang (1967) [1962]. Steinbuch, Karl W .; Wagner, Siegfried W. (eds.). Taschenbuch der Nachrichtenverarbeitung (en alemán) (2 ed.). Berlín, Alemania: Springer-Verlag OHG . págs.64, 1034–1035, 1036, 1038. LCCN 67-21079. Título No. 1036. p. 64: […] Übersichtlich ist die Darstellung nach Händler , die sämtliche Punkte, numeriert nach dem Gray-Code […], auf dem Umfeld eines Kreises anordnet. Sie erfordert allerdings sehr viel Platz. […] [ El diagrama de Händler , en el que todos los puntos, numerados según el código Gray , están dispuestos en la circunferencia de un círculo, es fácilmente comprensible. Sin embargo, necesita mucho espacio.]
^ "Informatik Sammlung Erlangen (ISER)" (en alemán). Erlangen, Alemania: Universidad Friedrich-Alexander . 2012-03-13. Archivado desde el original el 16 de mayo de 2017 . Consultado el 12 de abril de 2017 .
^ "Informatik Sammlung Erlangen (ISER) - Impressum" (en alemán). Erlangen, Alemania: Universidad Friedrich-Alexander . 2012-03-13. Archivado desde el original el 26 de febrero de 2012 . Consultado el 15 de abril de 2017 .
^ Donohue, Ryan (2003). «Sincronización en Circuitos Lógicos Digitales» (PDF) . Archivado (PDF) desde el original el 15 de enero de 2018 . Consultado el 15 de enero de 2018 .
^ Hulst, George D. (6 de febrero de 1962) [15 de noviembre de 1957]. Contador de código binario reflejado (PDF) . Nutley, Nueva Jersey, EE.UU.: Corporación Internacional de Teléfonos y Telégrafos (ITT). Patente estadounidense 3.020.481 . Número de serie 696793. Archivado (PDF) desde el original el 6 de agosto de 2020 . Consultado el 6 de agosto de 2020 .(5 páginas)
^ abcd Powell, E. Alexander (junio de 1968). "Códigos especialmente útiles para conversiones de analógico a digital". Una breve nota sobre códigos útiles para circuitos de control de fluidos (PDF) . Cranfield, Reino Unido: Facultad de Aeronáutica , Departamento de Ingeniería de Producción. págs.7, 9. S2CID 215864694. CoA Memo 156. Archivado (PDF) desde el original el 15 de diciembre de 2020 . Consultado el 15 de diciembre de 2020 .(18 páginas) (NB. El documento nombra el código Glixon modificado, el código Gray y escribe mal el nombre de Richard W. Hamming ).
^ Mehta, Huzefa; Owens, Robert Michael; Irwin, Mary Jane "Janie" (22 de marzo de 1996). "Algunos problemas al abordar el código gris". Actas del Sexto Simposio de los Grandes Lagos sobre VLSI . Sociedad de Computación IEEE . págs. 178-181. doi :10.1109/GLSV.1996.497616. ISBN978-0-8186-7502-7. ISSN 1066-1395. S2CID 52837310.
^ ab Doran, Robert "Bob" William (marzo de 2007). El código Gray (PDF) . Serie de informes de investigación del CDMTCS. Centro de Matemáticas Discretas e Informática Teórica, Universidad de Auckland , Nueva Zelanda. CDMTCS-304. Archivado (PDF) desde el original el 22 de mayo de 2020 . Consultado el 23 de mayo de 2020 .(25 páginas)
^ Su, Ching-Long; Tsui, Chi-Ying; España, Alvin M. (1994). Técnicas de compilación y diseño de arquitectura de bajo consumo para procesadores de alto rendimiento (PDF) (Reporte). Laboratorio de Arquitectura Avanzada de Computadores. ACAL-TR-94-01. Archivado (PDF) desde el original el 26 de julio de 2020 . Consultado el 17 de diciembre de 2020 .
^ Guo, Hui; Parameswaran, Sri (abril-junio de 2010). "Se cambió la codificación Gray para reducir la conmutación del bus de direcciones de la memoria de instrucciones para sistemas integrados de bajo consumo". Revista de Arquitectura de Sistemas . 56 (4–6): 180–190. doi :10.1016/j.sysarc.2010.03.003.
^ Dietz, Henry Gordon "Hank" (2002). "Los algoritmos mágicos agregados: conversión de código gris". El Agregado . Departamento de Ingeniería Eléctrica e Informática, Facultad de Ingeniería, Universidad de Kentucky . Archivado desde el original el 16 de diciembre de 2020 . Consultado el 16 de diciembre de 2020 .
^ Maxfield, Max (29 de junio de 2007). "Cómo generar códigos Gray para secuencias que no son potencias de 2". Archivado desde el original el 29 de enero de 2022 . Consultado el 29 de enero de 2022 .
^ (secuencia A290772 en la OEIS )
^ ab Guan, Dah-Jyh (1998). "Códigos Gray generalizados con aplicaciones". Actas del Consejo Científico Nacional, República de China, Parte A. 22 : 841–848. CiteSeerX 10.1.1.119.1344 .
^ DG Wagner, J. West (1991). "Construcción de Códigos Grises Uniformes". Congreso Numerantium . 80 : 217–223.
^ ab Suparta, I. Nengah (2005). "Una prueba sencilla de la existencia de códigos Gray exponencialmente equilibrados". Revista Electrónica de Combinatoria . 12 . doi : 10.37236/1986 .
^ Salvaje, Carla Diane (16 de enero de 1997). "Ciclos largos en los dos niveles medios de la red booleana". Ars Combinatoria . 35 (A). Universidad Estatal de Carolina del Norte, Raleigh, Carolina del Norte, EE.UU.: 97–108. CiteSeerX 10.1.1.39.2249 . ISSN 0381-7032. S2CID 15975960. Archivado desde el original el 13 de mayo de 2020 . Consultado el 13 de mayo de 2020 .(15 páginas)
^ ab Goddyn, Luis (1999). "Materiales complementarios de matemáticas discretas aplicadas MATH 343" (PDF) . Departamento de Matemáticas, Universidad Simon Fraser . Archivado desde el original (PDF) el 17 de febrero de 2015.
^ Sawada, José "Joe"; Wong, Dennis Chi-Him (2007). "Un algoritmo rápido para generar códigos Beckett-Gray". Apuntes Electrónicos en Matemática Discreta . 29 : 571–577. doi :10.1016/j.endm.2007.07.091.
^ Richards, Richard Kohler (enero de 1971). "Códigos de serpiente en la caja". Escrito en Ames, Iowa, EE.UU. Diseño Digital . Nueva York, Estados Unidos: Wiley-Interscience , John Wiley & Sons, Inc. págs. 206–207. ISBN0-471-71945-5. LCCN 73-147235.(12+577+1 páginas)
^ ab NZ 264738, Spedding, Norman Bruce, "Un codificador de posición", publicado el 28 de octubre de 1994 [ verificación fallida ]
^ Spedding, Norman Bruce (28 de octubre de 1994). "La siguiente es una copia de la patente provisional presentada en nombre de Industrial Research Limited el 28 de octubre de 1994 - Patente de Nueva Zelanda 264738" (PDF) . Investigación industrial limitada. Patente de Nueva Zelanda 264738. Archivado (PDF) desde el original el 29 de octubre de 2017 . Consultado el 14 de enero de 2018 .
^ Hiltgen, Alain P.; Paterson, Kenneth G.; Brandestini, Marco (septiembre de 1996). "Códigos grises de vía única". Transacciones IEEE sobre teoría de la información . 42 (5): 1555-1561. doi : 10.1109/18.532900. Zbl 857.94007.
^ Hiltgen, Alain P.; Paterson, Kenneth G. (septiembre de 2001). "Códigos de circuito de vía única" (PDF) . Transacciones IEEE sobre teoría de la información . 47 (6): 2587–2595. CiteSeerX 10.1.1.10.8218 . doi : 10.1109/18.945274. Archivado (PDF) desde el original el 15 de enero de 2018 . Consultado el 15 de enero de 2018 .
^ Etzión, Tuvi; Schwartz, Moshe (noviembre de 1999) [17 de mayo de 1998]. "La estructura de los códigos grises de vía única" (PDF) . Transacciones IEEE sobre teoría de la información . IT-45 (7): 2383–2396. CiteSeerX 10.1.1.14.8333 . doi : 10.1109/18.796379. Archivado (PDF) desde el original el 15 de enero de 2018 . Consultado el 15 de enero de 2018 .Informe técnico CS0937 Archivado el 15 de diciembre de 2018 en Wayback Machine.
^ Sillke, Torsten (1997) [1 de marzo de 1993]. "Gray-Codes con pocas pistas (una cuestión de Marco Brandestini)". Archivado desde el original el 29 de octubre de 2017 . Consultado el 29 de octubre de 2017 .
^ ab Etzión, Tuvi; Paterson, Kenneth G. (mayo de 1996). "Códigos grises de pista única casi óptimos" (PDF) . Transacciones IEEE sobre teoría de la información . IT-42 (3): 779–789. CiteSeerX 10.1.1.14.1527 . doi : 10.1109/18.490544. Archivado (PDF) desde el original el 30 de octubre de 2016 . Consultado el 8 de abril de 2018 .
^ Ruskey, Frank ; Weston, Mark (18 de junio de 2005). "Un estudio de los diagramas de Venn: diagramas simétricos". Encuestas dinámicas. Revista Electrónica de Combinatoria . doi : 10.37236/26 .
^ Williams, Gary (25 de julio de 2008). "Se busca 'código gris de pista única' para codificar 360 grados con 9 sensores". Intercambio de expertos .
^ Bauer, Florián. "Codificador rotatorio de código Gray de pista única absoluta de 9 bits". Thingiverso .
^ Krishna (11 de mayo de 2008). "Código gris para QAM". Archivado desde el original el 29 de octubre de 2017 . Consultado el 29 de octubre de 2017 .
^ Strang, Thomas; Dammann, Armin; Röckl, Matías; Plass, Simon (octubre de 2009). Uso de códigos Gray como identificadores de ubicación (PDF) . 6. GI/ITG KuVS Fachgespräch Ortsbezogene Anwendungen und Dienste (en inglés y alemán). Oberpfaffenhofen, Alemania: Instituto de Comunicaciones y Navegación, Centro Aeroespacial Alemán (DLR). CiteSeerX 10.1.1.398.9164 . Archivado (PDF) desde el original el 1 de mayo de 2015 . Consultado el 16 de diciembre de 2020 .(5/8 páginas) [10]
Thomas Strang; et al. (octubre de 2009). "Uso de códigos Gray como identificadores de ubicación" (PDF) . ResearchGate (Resumen) (en alemán e inglés). Archivado desde el original el 3 de septiembre de 2020.
^ Greferath, Marcus (2009). "Una introducción a la teoría de la codificación lineal en anillos". En Sala, Massimiliano; Mora, Teo; Perret, Ludovic; Sakata, Shojiro; Traverso, Carlo (eds.). Bases de Gröbner, codificación y criptografía . Medios de ciencia y negocios de Springer . pag. 220.ISBN978-3-540-93806-4.
^ Spaulding, Carl P. (12 de julio de 1965). Cómo utilizar codificadores de eje . Monrovia, California, Estados Unidos: Datex Corporation.(85 páginas)
^ ab Wheeler, Edwin L. (30 de diciembre de 1969) [5 de abril de 1968]. Codificador analógico a digital (PDF) . Nueva York, Estados Unidos: Conrac Corporation. Patente estadounidense 3487460A . Número de serie 719026 (397812). Archivado (PDF) desde el original el 5 de agosto de 2020 . Consultado el 21 de enero de 2018 . pag. 5, columna 9 de la izquierda, filas 15 a 22: […] El código MOA-GILLHAM es esencialmente la combinación del código Gray analizado anteriormente y el conocido código Datex; el código Datex se describe en la patente estadounidense 3.165.731. La disposición es tal que el código Datex define los bits para el recuento de unidades del codificador y el código Gray define los bits para cada una de las décadas de orden superior, las decenas, las centenas, etc. […](11 páginas)
^ abcdef Dokter, Folkert; Steinhauer, Jürgen (18 de junio de 1973). "2.4. Codificación de números en el sistema binario". Electrónica Digital. Biblioteca técnica Philips (PTL) / Macmillan Education (Reimpresión de la primera edición en inglés). Eindhoven, Países Bajos: The Macmillan Press Ltd. / Gloeilampenfabrieken de NV Philips . págs. 32, 39, 50–53. doi :10.1007/978-1-349-01417-0. ISBN978-1-349-01419-4. SBN 333-13360-9. Consultado el 11 de mayo de 2020 . pag. 53: […] El código Datex […] utiliza el código O'Brien II dentro de cada década y refleja números decimales para las transiciones decimales. Para su posterior procesamiento, es necesaria la conversión del código a la notación decimal natural. Dado que el código O'Brien II forma un complemento a 9 , esto no plantea dificultades especiales: siempre que la palabra clave para las decenas representa un número impar, las palabras clave para las unidades decimales se dan como complementos a 9 por inversión de la cuarto dígito binario. […][ enlace muerto permanente ] (270 páginas)
^ abcde Dokter, Folkert; Steinhauer, Jürgen (1975) [1969]. "2.4.4.6. Códigos escritos". Digitale Elektronik in der Meßtechnik und Datenverarbeitung: Theoretische Grundlagen und Schaltungstechnik . Philips Fachbücher (en alemán). vol. I (mejorada y ampliada 5ª ed.). Hamburgo, Alemania: Deutsche Philips GmbH . págs. 41, 48, 51, 58, 60–61. ISBN3-87145-272-6.(xii+327+3 páginas)
^ "... medición precisa del nivel de líquido, ¡a CUALQUIER DISTANCIA!". Refinador de petróleo (anuncio publicitario). 33 (9). Gulf Publishing Company : 368. Septiembre de 1954. ISSN 0096-6517. pag. 368: […] La operación completa de despacho, medición y control remoto se integra en un solo sistema unificado cuando se instala un Sistema de Telemedición por Código de Pulsos "Varec". […]
^ Obispo, Bernard W.; Repeta, Anthony A.; Giarrizzo, Frank C. (13 de agosto de 1968) [3 de abril de 1963]. "Sistema de telemedida y control de supervisión que tiene señales de telemedida normalmente continuas". Leeds y Northrup Co. US3397386A.[11]
^ "Formato de pulso del codificador". Manual de instalación y operaciones para el microtransmisor de 4 hilos modelo 1900 (PDF) . Cypress, California, EE.UU.: Whessoe Varec, Inc. enero de 1993 [1 de julio de 1991]. págs. 04-4–04-8. 33-08461. Archivado (PDF) desde el original el 16 de mayo de 2020 . Consultado el 16 de mayo de 2020 .(38 páginas) (NB. La posición 5 para "Pulgadas" en la página 04-8 debe decir "0111" en lugar de "1111".)
^ "2.2.3.3 Formato de datos de nivel MSP". Varec Modelo 1900 - Transmisor micro de 4 cables (BSAP a Mark / Protocolo espacial (MSP)) - Notas de aplicación (PDF) . Emerson Eléctrico . págs. 11-14. Archivado (PDF) desde el original el 16 de mayo de 2020 . Consultado el 16 de mayo de 2020 .(vi+33 páginas)
^ Phillips, Darryl (26 de julio de 2012) [1998]. "Altitud - MODEC ASCII". Aviónica AirSport. Archivado desde el original el 26 de julio de 2012.
^ Stewart, K. (3 de diciembre de 2010). "Código Gray de aviación: explicación del código Gillham". Servicios informáticos personalizados (CCS). Archivado desde el original el 16 de enero de 2018 . Consultado el 14 de enero de 2018 .
^ Leslie, William "Bill" HP; Russell, A. (1964). Un código decimal progresivo cíclico para traducción simple a salidas decimales y analógicas (Informe). East Kilbride, Glasgow, Reino Unido: Laboratorio Nacional de Ingeniería . Informe NEL 129.(17 páginas)
^ Leslie, William "Bill" HP (1974). "El trabajo en NC en NEL". En Königsberger, Franz; Tobías, Stephen Albert (eds.). Actas de la decimocuarta conferencia internacional de investigación y diseño de máquinas herramienta, 12 a 14 de septiembre de 1973. The Macmillan Press Ltd. págs. 215–224 [215, 217]. doi :10.1007/978-1-349-01921-2_30. ISBN978-1-34901921-2. LCCN 73-16545. SBN 333-14913-0. Archivado desde el original el 7 de abril de 2022 . Consultado el 21 de mayo de 2020 .
^ Hoklas, Archibald (6 de septiembre de 1989) [29 de abril de 1988]. "Abtastvorrichtung zur digitalen Wegoder Winkelmessung" (PDF) (en alemán). VEB Schiffselektronik Johannes Warnke [Delaware] . Patente de la RDA DD271603A1. WP H 03 M / 315 194 8. Archivado desde el original (PDF) el 18 de enero de 2018 . Consultado el 18 de enero de 2018 – vía DEPATIS [de] .[12] [13]
^ abcdefghijk Hoklas, Archibald (2005). "Código gris - Código de distancia unitaria". Archivado desde el original el 15 de enero de 2018 . Consultado el 15 de enero de 2018 .
^ ABCDE Hoklas, Archibald (2005). "Gray-Kode - Einschrittiger Abtastkode" (en alemán). Archivado desde el original el 15 de enero de 2018 . Consultado el 15 de enero de 2018 .
^ Petherick, Eduardo Juan; Hopkins, AJ (1958). Algunos dispositivos digitales desarrollados recientemente para codificar las rotaciones de ejes (Nota técnica MS21). Farnborough, Reino Unido: Royal Aircraft Establishment (RAE).
^ "Digitalizador y analógico-digital-Wandler in der Steuer-, Meß- und Regeltechnik" (PDF) . Technische Mitteilungen . Relais, elektronische Geräte, Steuerungen (en alemán). No. 13. Colonia-Niehl, Alemania: Franz Baumgartner (FraBa). Mayo de 1963. págs. 1–2. Archivado desde el original (PDF) el 21 de mayo de 2020 . Consultado el 21 de mayo de 2020 . págs. 1–2: […] Die Firma Harrison Reproduction Equipment, Farnborough/Inglaterra […] hat in jahrelanger Entwicklung in Zusammenarbeit mit der Britischen Luftwaffe und britischen Industriebetrieben den mechanischen Digitalizador […] zu einer technischen Reife gebracht, die fast allen Anforderungen […] Genügt. […] Um bei der dezimalen Entschlüsselung des verwendeten Binärcodes zu eindeutigen und bei der Übergabe von einer Dezimalstelle zur anderen in der Reihenfolge immer richtigen Ergebnissen zu kommen, wurde ein spezieller Code entwickelt, der jede Möglichkeit einer Fehlaussage durch se in Prinzip ausschließt und der außerdem durch seinen Aufbau eine relativ einfache Entschlüsselung erlaubt. El código se basa en el código Petherick. […](4 páginas)
^ ab Charnley, CJ; Bidgood, RE; Boardman, GET (octubre de 1965). "El diseño de un codificador de posición neumático" (PDF) . Volúmenes de actas de la IFAC . 2 (3). Facultad de Aeronáutica, Cranfield, Bedford, Inglaterra: 75–88. doi :10.1016/S1474-6670(17)68955-9. Capítulo 1.5 . Consultado el 14 de enero de 2018 .[ enlace muerto permanente ]
^ Hollingdale, Stuart H. (19 de septiembre de 1958). "Sesión 14. Tratamiento de datos". Aplicaciones de las computadoras (artículo de conferencia). Atlas: aplicación de las computadoras, Universidad de Nottingham, 15 a 19 de septiembre de 1958. Archivado desde el original el 25 de mayo de 2020 . Consultado el 25 de mayo de 2020 .
^ abc O'Brien, Joseph A. (mayo de 1956) [15 de noviembre de 1955, 23 de junio de 1955]. "Códigos decimales cíclicos para convertidores analógicos a digitales". Transacciones del Instituto Americano de Ingenieros Eléctricos, Parte I: Comunicaciones y Electrónica . 75 (2). Laboratorios Bell Telephone, Whippany, Nueva Jersey, EE. UU.: 120–122. doi :10.1109/TCE.1956.6372498. ISSN 0097-2452. S2CID 51657314. Documento 56-21. Archivado desde el original el 18 de mayo de 2020 . Consultado el 18 de mayo de 2020 .(3 páginas) (NB. Este documento fue preparado para su presentación en la Asamblea General de Invierno de AIEE, Nueva York, EE. UU., 1956-01-30 al 1956-02-03.)
^ abcdefghi Steinbuch, Karl W. , ed. (1962). Escrito en Karlsruhe, Alemania. Taschenbuch der Nachrichtenverarbeitung (en alemán) (1 ed.). Berlín / Gotinga / Nueva York: Springer-Verlag OHG . págs. 71–74, 97, 761–764, 770, 1080–1081. LCCN 62-14511.
^ abcdefghi Steinbuch, Karl W .; Weber, Wolfgang; Heinemann, Traute, eds. (1974) [1967]. Taschenbuch der Informatik – Band II – Struktur und Programmierung von EDV-Systemen . Taschenbuch der Nachrichtenverarbeitung (en alemán). vol. 2 (3 ed.). Berlín, Alemania: Springer Verlag . págs. 98-100. ISBN3-540-06241-6. LCCN 73-80607.
^ Foss, Frederic A. (27 de diciembre de 1960) [17 de diciembre de 1954]. «Sistemas de control» (PDF) . Corporación de máquinas de negocios internacionales . Fig. 7, Fig. 8, Fig. 11. Patente estadounidense 2966670A . Número de serie 475945. Archivado (PDF) desde el original el 21 de junio de 2020 . Consultado el 5 de agosto de 2020 .(14 páginas) (NB. El autor llamó a su código 2*-4-2-1 (+9-±7-±3-±1) código decimal reflejado).
^ Foss, Frederic A. (diciembre de 1954). "El uso de un código reflejado en sistemas de control digital". Transacciones IRE en Computadoras Electrónicas . CE-3 (4): 1–6. doi :10.1109/IREPGELC.1954.6499244. ISSN 2168-1740.(6 páginas)
^ Evans, David Silvester (1958). "[título desconocido]". Transacciones . 10–12. Instituto de Medición y Control: 87.(NB. El código Watts se llamó código WRD o Watts Reflected Decimal para distinguirlo de otros códigos utilizados en Hilger & Watts Ltd. )
^ Klinkowski, James J. (14 de marzo de 1967) [23 de marzo de 1964]. "Circuitos decodificadores de matriz de diodos electrónicos" (PDF) . Detroit, Michigan, Estados Unidos: Burroughs Corporation . Patente estadounidense 3309695A . Número de serie 353845. Archivado (PDF) desde el original el 23 de mayo de 2020 . Consultado el 23 de mayo de 2020 .(5 páginas) [15]
^ Klinkowski, James J. (31 de marzo de 1970) [22 de diciembre de 1966]. "Convertidor de señal decimal codificado en binario" (PDF) . Detroit, Michigan, Estados Unidos: Burroughs Corporation . Patente estadounidense 3504363A . Número de serie 603926. Archivado (PDF) desde el original el 23 de mayo de 2020 . Consultado el 23 de mayo de 2020 .(7 páginas)
^ Tóth-Zentai, Györgyi (5 de octubre de 1979). "Algunos problemas de los convertidores digitales rotacionales angulares". Periodica Polytechnica Ingeniería Eléctrica . 23 (3–4). Departamento de Tecnología Electrónica, Universidad Técnica, Budapest, Hungría: 265–270 [266] . Consultado el 23 de mayo de 2020 .[18] (6 páginas) (NB. Muestra un código Watts de 6 dígitos.)
^ Savard, John JG (2018) [2006]. "Representaciones decimales". cuadribloc . Archivado desde el original el 16 de julio de 2018 . Consultado el 16 de julio de 2018 .
^ ab Turvey, Jr., Frank P. (29 de julio de 1958) [17 de mayo de 1956]. "Codificador de conteo de pulsos" (PDF) . Nutley, Nueva Jersey, Estados Unidos: Corporación Internacional de Teléfonos y Telégrafos . Patente estadounidense 2845617A . Número de serie 585494. Archivado (PDF) desde el original el 23 de mayo de 2020 . Consultado el 23 de mayo de 2020 .(5 páginas)
^ ab Borucki, Lorenz; Dittmann, Joachim (1971) [julio de 1970, 1966, otoño de 1965]. "2.3 Códigos Gebräuchliche en der digitalen Meßtechnik". Escrito en Krefeld / Karlsruhe, Alemania. Digitale Meßtechnik: Eine Einführung (en alemán) (2 ed.). Berlín/Heidelberg, Alemania: Springer-Verlag . págs. 10–23 [12–14]. doi :10.1007/978-3-642-80560-8. ISBN3-540-05058-2. LCCN 75-131547. ISBN 978-3-642-80561-5 . (viii+252 páginas) 1.ª edición (NB. Al igual que Kämmerer, los autores describen un código Glixon de 6 bits y 20 cíclicos).
^ ab Kämmerer, Wilhelm [en alemán] (mayo de 1969). "II.15. Struktur: Informationsdarstellung im Automaten". Escrito en Jena, Alemania. En Frühauf, Hans [en alemán] ; Kämmerer, Wilhelm; Schröder, Kurz; Winkler, Helmut (eds.). Digitale Automaten: teoría, estructura, técnica y programación . Elektronisches Rechnen und Regeln (en alemán). vol. 5 (1 ed.). Berlín, Alemania: Akademie-Verlag GmbH . pag. 173. Licencia núm. 202-100/416/69. Nro. de pedido. 4666ES 20K 3.(NB. También existe una segunda edición de 1973. Al igual que Borucki y Dittmann, pero sin nombrarlo código Glixon, el autor crea un código tetrádico de 20 cíclicos a partir del código Glixon y una variante del código Glixon con bits de orden superior invertidos).
^ Paul, Matías R. (10 de agosto de 1995) [1994]. "Unterbrechungsfreier Schleifencode" [Código de bucle continuo]. 1.02 (en alemán) . Consultado el 11 de febrero de 2008 .(NB. El autor llamó a este código Schleifencode (inglés: "código de bucle"). Se diferencia del código Gray BCD solo en la codificación del estado 0 para convertirlo en un código cíclico de unidad de distancia para aplicaciones rotativas de círculo completo. Evitando todo -El patrón de código cero permite la autoprueba del bucle y el uso de las líneas de datos para una distribución de energía ininterrumpida).
^ Klar, Rainer (1 de febrero de 1970). Digitale Rechenautomaten – Eine Einführung [ Computadoras digitales – Introducción ]. Sammlung Göschen (en alemán). vol. 1241/1241a (1 ed.). Berlín, Alemania: Walter de Gruyter & Co. / GJ Göschen'sche Verlagsbuchhandlung [de] . pag. 17.ISBN3-11-083160-0. . Archivo-Nr. 7990709. Archivado desde el original el 1 de junio de 2020 . Consultado el 13 de abril de 2020 .(205 páginas) (NB. Una reimpresión de 2019 de la primera edición está disponible bajo ISBN 3-11002793-3 , 978-3-11002793-8 . También existe una cuarta edición reelaborada y ampliada).
^ Klar, Rainer (1989) [1 de octubre de 1988]. Digitale Rechenautomaten – Eine Einführung in die Struktur von Computerhardware [ Computadoras digitales: una introducción a la estructura del hardware de una computadora ]. Sammlung Göschen (en alemán). vol. 2050 (cuarta edición reelaborada). Berlín, Alemania: Walter de Gruyter & Co. p. 28.ISBN3-11011700-2.(320 páginas) (NB. El autor llamó a este código Einheitsabstandscode (inglés: "código de unidad de distancia"). Al intercambiar dos filas de bits e invertir una de ellas, se puede transferir al código O'Brien II, mientras que al intercambiar e invirtiendo dos filas de bits, se puede transferir al código Petherick).
Lectura adicional
Richards, Richard Kohler (1955). Operaciones aritméticas en computadoras digitales (5 ed.). Nueva York, Estados Unidos: D. Van Nostrand Co., Inc.
Richards, Richard Kohler (1967). Componentes y circuitos electrónicos digitales . D. Van Nostrand Co., Inc. págs. 490, 500–504, 510–511.
Negro, Paul E. (25 de febrero de 2004). "Código gris". NIST .
Prensa, William H.; Teukolsky, Saúl A.; Vetterling, William T.; Flannery, Brian P. (2007). "Sección 22.3. Códigos grises". Recetas numéricas: el arte de la informática científica (3ª ed.). Nueva York, Estados Unidos: Cambridge University Press . ISBN 978-0-521-88068-8. Archivado desde el original el 11 de agosto de 2011 . Consultado el 18 de agosto de 2011 .
Dewar, Megan; Stevens, Brett (29 de agosto de 2012). Solicitud de diseños de bloques: códigos Gray, ciclos universales y configuración . Libros CMS de Matemáticas (1 ed.). Nueva York, Estados Unidos: Springer Science+Business Media . doi :10.1007/978-1-4614-4325-4. ISBN 978-1-46144324-7. ISSN 1613-5237.
Maxfield, Clive "Max" (01 de octubre de 2012) [28 de mayo de 2011]. "Fundamentos del código Gray". Procedimientos de diseño . EETimes . Parte 1. Archivado desde el original el 30 de octubre de 2017 . Consultado el 30 de octubre de 2017 .Parte 2 Parte 3
Zinovik, Igor; Kroening, Daniel; Chebiryak, Yuri (21 de marzo de 2008). "Cálculo de códigos grises combinatorios binarios mediante búsqueda exhaustiva con solucionadores SAT". Transacciones IEEE sobre teoría de la información . 54 (4). IEEE : 1819–1823. doi :10.1109/TIT.2008.917695. hdl : 20.500.11850/11304 . S2CID 2854180.(5 páginas)
O'Brien, Joseph A. (junio de 1957). "Traductores de código binario-decimal de unidad-distancia". Transacciones IRE en Computadoras Electrónicas . CE-6 (2): 122-123. doi :10.1109/TEC.1957.5221585. ISSN 0367-9950 . Consultado el 25 de mayo de 2020 .(2 páginas)
Barr, KG (marzo de 1981). "Un código Gray decimal: se convierte fácilmente para codificar la posición del eje" (PDF) . Mundo inalámbrico . vol. 87, núm. 1542. Facultad de Ciencias Naturales, Universidad de las Indias Occidentales . págs. 86–87. Archivado (PDF) desde el original el 28 de julio de 2020 . Consultado el 28 de julio de 2020 .
Enlaces externos
Demostración de "Código Gris" realizada por Michael Schreiber, Proyecto de Demostraciones Wolfram (con implementación de Mathematica). 2007.
Diccionario NIST de algoritmos y estructuras de datos: código Gray.
Guía del autoestopista para la computación evolutiva, P21: ¿Qué son los códigos Gray y por qué se usan?, incluido el código C para convertir entre binario y BRGC.
Dragos A. Harabor utiliza códigos Gray en un digitalizador 3D.
ProtoTalk.net – Comprensión de la codificación en cuadratura: cubre la codificación en cuadratura con más detalle con un enfoque en aplicaciones robóticas.