El código binario reflejado ( RBC ), también conocido como binario reflejado ( RB ) o código Gray en honor a Frank Gray , es una ordenación del sistema numérico binario tal que dos valores sucesivos difieren en un solo bit (dígito binario).
Por ejemplo, la representación del valor decimal "1" en binario sería normalmente " 001 ", y la del "2" sería " 010 ". En código Gray, estos valores se representan como " 001 " y " 011 ". De esta forma, incrementar un valor de 1 a 2 requiere cambiar solo un bit, en lugar de dos.
Los códigos Gray se utilizan ampliamente para evitar salidas espurias de interruptores electromecánicos y para facilitar la corrección de errores en comunicaciones digitales como la televisión digital terrestre y algunos sistemas de televisión por cable . El uso de códigos Gray en estos dispositivos ayuda a simplificar las operaciones lógicas y a reducir los errores en la práctica. [ 1 ]
Función
Muchos dispositivos indican la posición mediante interruptores que se abren y se cierran. Si ese dispositivo utiliza 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 son diferentes:
El problema con los códigos binarios naturales es que los interruptores físicos no son ideales: es muy improbable que cambien de estado exactamente en sincronía. En la transición entre los dos estados mostrados anteriormente, los tres interruptores cambian de estado. En el breve período en que todos cambian, los interruptores leerán una posición espuria. 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 determinar si esa es la posición "real" 1, o un estado de transición entre otras dos posiciones. Si la salida se introduce en 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 solo un interruptor a la vez, de modo que nunca haya ambigüedad de posición, lo que da como resultado códigos que asignan a cada uno de un conjunto contiguo de enteros , o a cada miembro de una lista circular, una palabra de símbolos tal que no hay dos palabras de código idénticas y cada dos palabras de código adyacentes difieren en exactamente un símbolo. Estos códigos también se conocen como códigos de distancia unitaria , [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] de distancia única , de paso único , monostróficos [ 7 ] [ 8 ] [ 5 ] [ 6 ] o sincópicos , [ 7 ] en referencia a la distancia de Hamming de 1 entre códigos adyacentes.
Invención

En principio, puede haber más de un código de este tipo para una longitud de palabra dada, pero el término código Gray se aplicó por primera vez a un código binario particular para enteros no negativos, el código Gray binario reflejado , o BRGC . El investigador de Bell Labs , George R. Stibitz, describió dicho código en una solicitud de patente de 1941, concedida en 1943. [ 9 ] [ 10 ] [ 11 ] Frank Gray introdujo el término código binario reflejado en su solicitud de patente de 1947, señalando que el código "aún no tenía un nombre reconocido". [ 12 ] 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 encendidos, 2 apagados (… 11001100 …); el siguiente dígito un patrón de 4 encendidos, 4 apagados; el i -ésimo bit menos significativo un patrón de 2 i encendidos, 2 i apagados. El dígito más significativo es una excepción: para un código Gray de n bits, el dígito más significativo sigue el patrón 2 n − 1 encendidos, 2 n − 1 apagados, que es la misma secuencia (cíclica) de valores que para el segundo dígito más significativo, pero desplazada 2 n − 2 posiciones hacia adelante. La versión de cuatro bits de esto se muestra a continuación:
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. [ 13 ]
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 se transmiten típicamente en símbolos de cuatro bits o más, el diagrama de constelación de la señal se organiza de manera que los patrones de bits transmitidos por puntos de constelación adyacentes difieren en solo un bit. Al combinar esto con la corrección de errores hacia adelante, capaz de corregir errores de un solo bit, es posible que un receptor corrija cualquier error de transmisión que provoque que un punto de 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 [ 9 ] [ 10 ] [ 11 ] antes que Gray, el código binario reflejado fue posteriormente nombrado en honor a Gray por otros que lo utilizaron. Dos solicitudes de patente diferentes de 1953 utilizan "código Gray" como nombre alternativo para el "código binario reflejado"; [ 14 ] [ 15 ] una de ellas también enumera "código de error mínimo" y "código de permutación cíclica" entre los nombres. [ 15 ] Una solicitud de patente de 1954 se refiere al "código Gray de Bell Telephone". [ 16 ] Otros nombres incluyen "código binario cíclico", [ 10 ] "código de progresión cíclica", [ 17 ] [ 10 ] "binario permutante cíclico" [ 18 ] o "binario permutado cíclico" (CPB). [ 19 ] [ 20 ]
El código Gray a veces se atribuye erróneamente al inventor de dispositivos eléctricos del siglo XIX, Elisha Gray . [ 11 ] [ 21 ] [ 22 ] [ 23 ]
Historia y aplicación práctica
Rompecabezas matemáticos
Los códigos binarios reflejados se aplicaban 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 chino de anillos , un mecanismo de rompecabezas mecánico secuencial descrito por el francés Louis Gros en 1872. [ 24 ] [ 11 ]
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. [ 25 ] [ 26 ] [ 27 ] [ 28 ] De manera similar, las configuraciones de los juegos denominados Torres de Bucarest y Torres de Klagenfurt producen códigos Gray ternarios y pentarios . [ 29 ]
Martin Gardner escribió un relato divulgativo del código Gray en su columna "Juegos matemáticos" de agosto de 1972 en Scientific American . [ 30 ]
El código también forma un ciclo hamiltoniano en un grafo hipercubo de longitud[ 31 ]
Códigos de telegrafía
Cuando el ingeniero francés Émile Baudot cambió de usar un código de 6 unidades (6 bits) a un código de 5 unidades para su sistema de telégrafo impreso , en 1875 [ 32 ] o 1876, [ 33 ] [ 34 ] 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 alfabéticamente y otros símbolos colocados adecuadamente, el código de caracteres de 5 bits ha sido reconocido como un código binario reflejado. [ 11 ] Este código se conoció como código Baudot [ 35 ] y, con cambios menores, finalmente fue adoptado como Alfabeto Telegráfico Internacional n.° 1 (ITA1, CCITT-1) en 1932. [ 36 ] [ 37 ] [ 38 ]
Casi al mismo tiempo, el germano-austríaco Otto Schäffler [ 39 ] demostró otro telégrafo impresor en Viena utilizando un código binario reflejado de 5 bits para el mismo propósito, en 1874. [ 40 ] [ 11 ]
Conversión de señal analógica a digital
Frank Gray , famoso por inventar el método de señalización que posteriormente se utilizó en la televisión en color compatible, ideó un método para convertir señales analógicas en grupos de código binario reflejado mediante un aparato basado en tubos de vacío . Presentado en 1947, el método y el aparato fueron patentados en 1953, [ 12 ] y el nombre de Gray quedó asociado a los códigos. El aparato de " tubo PCM " patentado por Gray fue fabricado por Raymond W. Sears de Bell Labs, en colaboración con Gray y William M. Goodall, quien reconoció a Gray la idea del código binario reflejado. [ 41 ]

Gray estaba muy interesado en utilizar los códigos para minimizar los errores en la conversión de señales analógicas a digitales; sus códigos todavía se utilizan hoy en día con este propósito.
Codificadores de posición


Los códigos Gray se utilizan en codificadores de posición lineales y rotativos ( codificadores absolutos y de cuadratura ) en lugar de 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 debido a que algunos bits cambian antes que otros.
Por ejemplo, algunos codificadores rotativos cuentan con un disco que presenta un patrón de código Gray conductor en anillos concéntricos (pistas). Cada pista tiene un contacto de resorte metálico fijo que proporciona contacto eléctrico al patrón de código conductor. En conjunto, estos contactos generan señales de salida en forma de código Gray. Otros codificadores emplean mecanismos sin contacto, basados en sensores ópticos o magnéticos, para generar las señales de salida del código Gray.
Independientemente del mecanismo o la precisión de un codificador móvil, pueden producirse errores de medición de posición en puntos específicos (en los límites del código) debido a que este puede estar cambiando en el preciso instante de su lectura (muestreo). Un código de salida binario podría causar errores significativos en la medición de posición, ya que es imposible que todos los bits cambien exactamente al mismo tiempo. Si, en el momento del muestreo, algunos bits han cambiado y otros no, la posición muestreada será incorrecta. En el caso de los codificadores absolutos, la posición indicada puede estar muy alejada de la posición real y, en el caso de los codificadores incrementales, esto puede afectar negativamente al seguimiento de la posición.
En cambio, el código Gray utilizado por los codificadores de posición garantiza que los códigos de dos posiciones consecutivas cualesquiera difieran en un solo bit y, por consiguiente, solo un bit puede cambiar a la vez. En este caso, el error máximo de posición será pequeño, lo que indica 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 . [ 13 ] Pueden ser útiles en este campo porque las mutaciones en el código permiten cambios mayormente incrementales, pero ocasionalmente un solo cambio de bit puede causar un gran salto y conducir a nuevas propiedades.
Minimización de circuitos booleanos
Los códigos Gray también se utilizan para etiquetar los ejes de los mapas de Karnaugh desde 1953 [ 42 ] [ 43 ] [ 44 ] así como en los gráficos circulares de Händler desde 1958, [ 45 ] [ 46 ] [ 47 ] [ 48 ] ambos métodos gráficos para la minimización de circuitos lógicos .
Corrección de errores
En las comunicaciones digitales modernas , los códigos Gray 1D y 2D desempeñan un papel importante en la prevención de errores antes de aplicar la corrección de errores . Por ejemplo, en un esquema de modulación digital como QAM, donde los datos se transmiten típicamente en símbolos de 4 bits o más, el diagrama de constelación de la señal se organiza de manera que los patrones de bits transmitidos por puntos de constelación adyacentes difieren en un solo bit. Al combinar esto con la corrección de errores hacia adelante , capaz de corregir errores de un solo bit, es posible que un receptor corrija cualquier error de transmisión que provoque que un punto de 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 transmitir información de conteo de múltiples 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". Esto es fundamental para el diseño de chips de gran tamaño que operan con múltiples frecuencias de reloj.
Recorrer estados en bicicleta con un mínimo esfuerzo
Si un sistema debe recorrer secuencialmente todas las combinaciones posibles de estados de encendido/apagado de un conjunto de controles, y los cambios en dichos controles implican un coste considerable (por ejemplo, tiempo, desgaste, mano de obra), un código Gray minimiza el número de cambios de configuración a un solo cambio por 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 de accionamiento manual.
Se puede construir un código Gray balanceado [ 49 ] que invierte cada bit con la misma frecuencia. Dado que las inversiones de bits se distribuyen uniformemente, esto es óptimo de la siguiente manera: los códigos Gray balanceados minimizan la cantidad máxima de inversiones de bits para cada dígito.
Contadores y aritmética de código Gray
George R. Stibitz utilizó un código binario reflejado en un dispositivo de conteo de pulsos binarios en 1941. [ 9 ] [ 10 ] [ 11 ]
Un uso típico de los contadores de código Gray es la construcción de un búfer de datos FIFO (primero en entrar, primero en salir) con puertos de lectura y escritura que existen en diferentes dominios de reloj. Los contadores de entrada y salida dentro de dicho 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 los dominios de reloj. [ 50 ] Los punteros de lectura y escritura actualizados deben pasarse entre dominios de reloj cuando cambian, para poder rastrear el estado de vacío y lleno del FIFO en cada dominio. Cada bit de los punteros se muestrea de forma no determinista para esta transferencia de dominio de reloj. Así, para cada bit, se propaga el valor antiguo o el nuevo. Por lo tanto, si más de un bit en el puntero multibit está cambiando en el punto de muestreo, se puede propagar un valor binario "incorrecto" (ni nuevo ni antiguo). Al garantizar que solo un bit puede cambiar, los códigos Gray garantizan que los únicos valores muestreados posibles son el nuevo o el antiguo valor multibit. Normalmente se utilizan códigos Gray de longitud potencia de dos.
A veces, en los sistemas electrónicos, los buses digitales se utilizan para transmitir cantidades que solo pueden aumentar o disminuir de uno en uno, por ejemplo, la salida de un contador de eventos que se transmite entre dominios de reloj o a un convertidor digital-analógico. La ventaja de los códigos Gray en estas aplicaciones es que las diferencias en los retardos de propagación de los numerosos cables que representan los bits del código no pueden provocar 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, en este caso, la fuente del código Gray es un contador electrónico. El propio contador 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 haber sido 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 binario-Gray impliquen que el código pueda pasar brevemente por estados que están muy fuera de secuencia. Agregar un registro síncrono después del circuito que convierte el valor de conteo a código Gray puede introducir un ciclo de reloj de latencia, por lo que contar directamente en código Gray puede ser ventajoso. [ 51 ]
Para generar el siguiente valor de conteo en un contador de código Gray, es necesario contar con una lógica combinacional que incremente el valor de conteo actual almacenado. Una forma de incrementar un número de código Gray es convertirlo a código binario ordinario, [ 52 ] sumarlo en uno con un sumador binario estándar y luego convertir el resultado de nuevo a código Gray. [ 53 ] Otros métodos de conteo en código Gray se analizan en un informe de Robert W. Doran , incluyendo la toma de la salida de los primeros pestillos de los flip-flops maestro-esclavo en un contador de rizado binario. [ 54 ]
Direccionamiento de código gris
Dado que la ejecución de código ejecutable suele provocar un patrón de acceso a la memoria de instrucciones con direcciones consecutivas locales, las codificaciones de bus que utilizan el direccionamiento de código Gray en lugar del direccionamiento binario pueden reducir significativamente el número de cambios de estado de los bits de dirección, lo que reduce el consumo de energía de la CPU en algunos diseños de bajo consumo. [ 55 ] [ 56 ]
Uniformidad y singularidad de los códigos Gray
En el sistema de código binario natural , el bit menos significativo indica si el número es par (0) o impar (1), una propiedad ausente en el código Gray. Dado que solo se modifica un bit en códigos Gray consecutivos, la cantidad de bits 1 alternará entre pares e impares. Por lo tanto, para comprobar si un código Gray es par, es necesario contarlos; es decir, una cantidad par de 1 significa que el código Gray es par.
Algunos procesadores, como el Z80 de Zilog , el R800 de Japan ASCII y el 8086 de Intel , tienen indicadores de estado de paridad , que señalan la paridad bit a bit de algunos registros, lo que facilita la comprobación de si el número de bits activos en ellos es par.
Construcción de un código Gray de n bits


La lista de código Gray reflejada en binario 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 un 0 binario a las entradas de la lista original, anteponiendo un 1 binario a las entradas de la lista reflejada y, a continuación, concatenando la lista original con la lista invertida. [ 11 ] 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 ). Esto puede considerarse construido recursivamente, como se indicó anteriormente, 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 generación de G n +1 a partir de G n deja claras 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á incrustado como la primera mitad de G n +1 .
- Por lo tanto, la codificación es estable , en el sentido de que una vez que un número binario aparece 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 reflectivo de un número: G ( m ) = el m ésimo código Gray reflectivo, contando desde 0.
- Cada entrada en G n difiere en un solo bit de la entrada anterior. (La distancia de Hamming es 1).
- La última entrada en G n difiere en un solo 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 un desplazamiento de bits y una operación OR exclusiva si están disponibles: el n -ésimo código Gray se obtiene calculandoAnteponer un bit 0 deja el orden de las palabras del código sin cambios, anteponer un bit 1 invierte el orden de las palabras del código. Si los bits en la posiciónde las palabras clave están invertidas, el orden de los bloques vecinos deLas palabras clave se invierten. Por ejemplo, si el bit 0 se invierte en una secuencia de palabras clave de 3 bits, el orden de dos palabras clave vecinas se invierte.
Si el bit 1 está invertido, los bloques de 2 palabras clave cambian de orden:
Si el bit 2 está invertido, los bloques de 4 palabras clave invierten su orden:
Por lo tanto, realizar una operación exclusiva o en un biten posicióncon el biten posicióndeja intacto el orden de las palabras clave siy revierte el orden de los bloques depalabras clave siAhora 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. Suponiendoes elth Bit codificado en Gray (siendo la parte más significativa), yes elth bit codificado en binario ((siendo el bit más significativo), la traducción inversa se puede dar recursivamente:, yAlternativamente, la decodificación de un código Gray en un número binario se puede describir como una suma de prefijos de los bits en el código Gray, donde cada operación de suma individual en la suma de prefijos se realiza módulo dos.
Para construir el código Gray reflejado binario de forma iterativa, en el paso 0 comience con ely en el pasoencuentra la posición del bit menos significativo 1 en la representación binaria dey cambia el bit en esa posición en el código anterior.para obtener el siguiente código. Las posiciones de bits comienzan 0, 1, 0, 2, 0, 1, 0, 3, … [ nb 2 ] Consulte find first set para obtener algoritmos eficientes para calcular estos valores.
Conversión a 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 uno por uno, existen algoritmos más rápidos. [ 57 ] [ 52 ] [ nb 1 ]
typedef unsigned int uint ;// Esta función convierte un número binario sin signo a código Gray binario reflejado. uint BinaryToGray ( uint num ) { return num ^ ( num >> 1 ); // El operador >> es desplazamiento a la derecha. El operador ^ es disyunción exclusiva. }// Esta función convierte un número de código Gray binario reflejado a un número binario. uint GrayToBinary ( uint num ) { uint mask = num ; while ( mask ) { // Cada bit del código Gray se combina mediante OR exclusivo con todos los bits más significativos. mask >>= 1 ; num ^= mask ; } return num ; }// 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 paralela. Las instrucciones de asignación pueden estar en cualquier orden. // // Esta función puede adaptarse para códigos Gray más largos agregando pasos.uint GrayToBinary32 ( uint num ) { num ^= num >> 16 ; num ^= num >> 8 ; num ^ = num >> 4 ; num ^= num >> 2 ; num ^= num >> 1 ; return num ; } // Una variante de cuatro bits a la vez cambia un número binario (abcd)2 a (abcd)2 ^ (00ab)2, y luego a (abcd)2 ^ (00ab)2 ^ (0abc)2 ^ (000a)2.En los procesadores más recientes, el número 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 Gray de x siempre dará como resultado x o su negación bit a bit.
Tipos especiales de códigos Gray
En la práctica, el término "código Gray" casi siempre se refiere a un código Gray binario reflejado (BRGC). Sin embargo, los matemáticos han descubierto otros tipos de códigos Gray. Al igual que los BRGC, cada uno consiste en una lista de palabras, donde cada palabra se diferencia de la siguiente en un solo dígito (cada palabra tiene una distancia de Hamming de 1 con respecto a la siguiente).
Códigos Gray con n bits y de longitud menor que 2n
Es posible construir códigos Gray binarios con n bits de longitud menor a 2n , si la longitud es par. Una posibilidad es comenzar con un código Gray balanceado y eliminar pares de valores al principio y al final, o en el medio. [ 58 ] La secuencia OEIS A290772 [ 59 ] proporciona el número de posibles secuencias Gray de longitud 2n que incluyen el cero y utilizan el número mínimo de bits.
Código Gray n -ario
Además del código Gray binario reflejado, existen muchos tipos especializados de códigos Gray. Un ejemplo es el código Gray n -ario , también conocido como código Gray no booleano . Como su nombre indica, este tipo de código Gray utiliza valores no booleanos en su codificación.
Por ejemplo, un código Gray ternario ( o de orden 3 ) usaría los valores 0, 1, 2. [ 29 ] El código Gray ( n , k ) es el código Gray n -ario con k dígitos. [ 60 ] La secuencia de elementos en el código Gray (3, 2) es: 00, 01 , 02, 12, 11, 10, 20, 21, 22. El código Gray ( n , k ) puede construirse recursivamente, como el BRGC, o puede construirse iterativamente . Se presenta un algoritmo para generar iterativamente el código Gray ( N , k ) (en C ):
// entradas: base, dígitos, valor // salida: Gray // Convierte un valor a un código Gray con la base y los dígitos dados. // Iterar a través de una secuencia de valores daría como resultado una secuencia // de códigos Gray en la que solo cambia un dígito a la vez. void toGray ( unsigned base , unsigned digits , unsigned value , unsigned gray [ digits ]) { unsigned baseN [ digits ]; // Almacena el número base-N ordinario, un dígito por entrada unsigned i ; // La variable del bucle // Coloca el número baseN normal en el array baseN. Para la base 10, 109 // se almacenaría como [9,0,1] for ( i = 0 ; i < digits ; i ++ ) { baseN [ i ] = valor % base ; valor = valor / base ; } // Convierte el número baseN normal en el equivalente del código Gray. Ten en cuenta que // el bucle comienza en el dígito más significativo y baja. unsigned shift = 0 ; while ( i -- ) { // El dígito Gray se desplaza hacia abajo por la suma de los dígitos superiores. gray [ i ] = ( baseN [ i ] + shift ) % base ; shift = shift + base - gray [ i ]; // Restar de la base para que shift sea positivo } } // EJEMPLOS // entrada: valor = 1899, base = 10, dígitos = 4 // salida: baseN[] = [9,9,8,1], gray[] = [0,1,7,1] // entrada: valor = 1900, base = 10, dígitos = 4 // salida: baseN[] = [0,0,9,1], gray[] = [0,1,8,1]Existen otros algoritmos de código Gray para códigos Gray ( n , k ). El código Gray ( n , k ) generado por el algoritmo anterior es siempre cíclico; algunos algoritmos, como el de Guan, [ 60 ] carecen de esta propiedad cuando k es impar. Por otro lado, si bien con este método solo cambia un dígito a la vez, puede cambiar mediante un bucle (de n − 1 a 0). En el algoritmo de Guan, el contador aumenta y disminuye 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 unívoca, ya que una permutación de las columnas de dicho código también constituye un código Gray. El procedimiento anterior genera un código en el que, cuanto menor sea la importancia de un dígito, mayor será su frecuencia de cambio, lo que lo asemeja a los métodos de conteo convencionales.
Véase también Sistema de numeración binario sesgado , una variante del sistema de numeración ternario donde como máximo dos dígitos cambian en cada incremento, ya que cada incremento se puede realizar con como máximo una operación de acarreo de dígitos.
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". [ 49 ] En los códigos Gray balanceados , el número de cambios en diferentes posiciones de coordenadas es lo más cercano posible. Para ser más precisos, sea G un ciclo Gray completo R -ario con secuencia de transición; los recuentos de transición ( espectro ) de G son la colección de enteros definidos por
Un código Gray es uniforme o uniformemente equilibrado si todos sus recuentos de transición son iguales, en cuyo caso tenemospara todo k . Claramente, cuando, tales códigos existen solo si n es una potencia de 2. [ 61 ] 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 es como máximo 2; de modo que (combinando ambos casos) cada recuento de transición es oo. [ 49 ] Los códigos Gray también pueden estar equilibrados exponencialmente si todos sus recuentos de transición son potencias adyacentes de dos, y tales códigos existen para cada potencia de dos. [ 62 ]
Por ejemplo, un código Gray de 4 bits equilibrado tiene 16 transiciones, que se pueden distribuir uniformemente entre las cuatro posiciones (cuatro transiciones por posición), lo que lo hace uniformemente equilibrado: [ 49 ]
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: [ 49 ]
Ahora mostraremos una construcción [ 63 ] e implementación [ 64 ] para códigos Gray binarios bien balanceados que nos permite generar un código Gray balanceado de n dígitos para cada n . El principio principal es construir inductivamente un código Gray de ( n + 2) dígitos. dado un código Gray de n dígitos G de tal manera que se preserve la propiedad de equilibrio. Para ello, consideramos particiones deen un número par L de bloques no vacíos de la forma
dónde,, y). Esta partición induce una-código Gray de dígitos dado por
Si definimos las multiplicidades de transición
Si 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 de ( n + 2) dígitos inducido por esta partición el espectro de transición es
La parte delicada de esta construcción consiste en encontrar una partición adecuada de un código Gray balanceado de n dígitos de tal manera que el código inducido por él permanezca balanceado, pero para esto solo importan las multiplicidades de transición; unir dos bloques consecutivos en un dígitotransición y división de otro bloque en otro dígitoLa transición produce un código Gray diferente con exactamente el mismo espectro de transición., así que uno puede, por ejemplo [ 62 ] designar el primerotransiciones en el dígitocomo aquellos que caen entre dos bloques. Los códigos uniformes se pueden encontrar cuandoy, y esta construcción también puede extenderse al caso R -ario. [ 63 ]
Códigos Gray de larga duración
Los códigos Gray de larga duración (o de intervalo máximo ) maximizan la distancia entre cambios consecutivos de dígitos en la misma posición. Es decir, la longitud mínima de cualquier bit permanece sin cambios durante el mayor tiempo posible. [ 65 ]
Códigos Gray monotónicos
Los códigos monótonos son útiles en la teoría de redes de interconexión, especialmente para minimizar la dilatación en arreglos lineales de procesadores. [ 66 ] Si definimos el peso de una cadena binaria como el número de 1s en la cadena, entonces, aunque claramente no podemos tener un código Gray con un peso estrictamente creciente, podemos aproximarlo haciendo que el código recorra dos pesos adyacentes antes de llegar al siguiente.
Podemos formalizar el concepto de códigos Gray monótonos de la siguiente manera: consideremos la partición del hipercubo.en niveles de vértices que tienen igual peso, es decir
paraEstos niveles satisfacen. Dejarsea el subgrafo deinducido pory dejarser los bordes en. Un código Gray monótono es entonces un camino hamiltoniano ende tal manera que siempreviene antesen el camino, entonces.
Una elegante construcción de códigos Gray monótonos de n dígitos para cualquier n se basa en la idea de construir subrutas recursivamente.de longitudtener bordes en. [ 66 ] Definimos,cuando seao, y
de lo contrario. Aquí,es una permutación adecuadamente definida yse refiere al camino P con sus coordenadas permutadas porEstos caminos dan lugar a dos códigos Gray monótonos de n dígitos.ydado por
La elección delo que garantiza que estos códigos sean realmente códigos Gray resulta ser. Los primeros valores dese muestran en la tabla a continuación.
Estos códigos Gray monótonos se pueden implementar de manera eficiente, de modo que cada elemento subsiguiente se pueda generar en tiempo O ( n ). El algoritmo se describe más fácilmente usando corrutinas .
Los códigos monótonos tienen una conexión interesante con la conjetura de Lovász , que afirma que todo grafo conexo transitivo en vértices contiene un camino hamiltoniano. El subgrafo de "nivel medio"es transitivo en vértices (es decir, su grupo de automorfismos es transitivo, de modo que cada vértice tiene el mismo "entorno local" y no se puede diferenciar de los demás, ya que podemos renombrar las coordenadas, así como los dígitos binarios, para obtener un automorfismo ) y el problema de encontrar un camino hamiltoniano en este subgrafo se denomina "problema de niveles intermedios", que puede proporcionar información sobre la conjetura más general. La pregunta ha sido respondida afirmativamente paray 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. [ 67 ]
Código de Beckett-Gray
Otro tipo de código Gray, el código Beckett-Gray , recibe su nombre del dramaturgo irlandés Samuel Beckett , quien estaba interesado en la simetría . Su obra " Quad " presenta a 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. [ 68 ] Claramente, el conjunto de actores que se encuentran actualmente en el escenario puede representarse mediante un código Gray binario de 4 bits. Sin embargo, Beckett impuso una restricción adicional al guion: deseaba que los actores entraran y salieran de manera que el actor que hubiera estado en el escenario durante más tiempo fuera siempre el que saliera. Los actores podrían entonces representarse mediante una cola FIFO , de modo que (de los actores en el escenario) el actor que se extrae de la cola es siempre el que se encoló primero. [ 68 ] 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. Un ejemplo de un código Beckett-Gray de 8 bits se puede encontrar en El arte de la programación de computadoras de Donald Knuth . [ 11 ] Según Sawada y Wong, el espacio de búsqueda para n = 6 se puede explorar en 15 horas, y másSe han encontrado 9500 soluciones para el caso n = 7. [ 69 ]
Códigos de serpiente en la caja

Los códigos de serpiente en la caja , o serpientes , son secuencias de nodos de caminos inducidos en un grafo hipercubo n- dimensional , y los códigos de bobina en la caja, [ 70 ] o bobinas , son secuencias de nodos de ciclos inducidos en un hipercubo. Vistas 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 la década de 1950; [ 3 ] desde entonces, se ha investigado mucho sobre cómo encontrar el código con el mayor número posible de palabras clave para una dimensión de hipercubo dada.
Código Gray de una sola vía
Otro tipo de código Gray es el código Gray de pista única (STGC), desarrollado por Norman B. Spedding [ 71 ] [ 72 ] y refinado por Hiltgen, Paterson y Brandestini en Single-track Gray Codes (1996). [ 73 ] [ 74 ] El STGC es una lista cíclica de P codificaciones binarias únicas de longitud n, de modo que dos palabras consecutivas difieren en exactamente 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. [ 75 ]

El nombre proviene de su uso con codificadores rotativos , donde varios contactos detectan diferentes pistas, generando una salida de 0 o 1 para cada una . Para reducir el ruido causado por la conmutación no simultánea de los distintos contactos, se recomienda configurar las pistas de manera 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 una precisión de al menos 1°, se requieren al menos 360 posiciones distintas por revolución, lo que exige un mínimo de 9 bits de datos y, por lo tanto, el mismo número de contactos.
Si todos los contactos se colocan en la misma posición angular, se necesitan 9 pistas para obtener un BRGC estándar con una precisión de al menos 1°. Sin embargo, si el fabricante mueve un contacto a una posición angular diferente (pero a la misma distancia del eje central), el patrón de anillos correspondiente debe girarse el mismo ángulo para obtener la misma salida. Si el bit más significativo (el anillo interior en la Figura 1) gira lo suficiente, coincide exactamente con el siguiente anillo. Dado que ambos anillos son idénticos, se puede recortar el anillo interior y mover el sensor correspondiente al anillo restante, que es idéntico (pero desplazado en ese ángulo con respecto al otro sensor de ese anillo). Estos dos sensores en un solo anillo forman un codificador de cuadratura. Esto reduce el número de pistas para un codificador angular con una 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 [ 76 ] y otros matemáticos creyeron que era imposible codificar la posición en una sola pista de manera que las posiciones consecutivas difirieran en un solo sensor, excepto con el codificador de cuadratura de 2 sensores y 1 pista. Por lo tanto, para aplicaciones donde 8 pistas eran demasiado voluminosas, se utilizaron codificadores incrementales de una sola pista (codificadores de cuadratura) o codificadores de 2 pistas de "codificador de cuadratura + muesca de referencia".
Norman B. Spedding, sin embargo, registró una patente en 1994 con varios ejemplos que demostraban que era posible. [ 71 ] 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 una potencia de 2, n sensores pueden distinguir como máximo 2 n − 2 n posiciones y que para n primo el límite es 2 n − 2 posiciones. [ 77 ] Los autores procedieron a generar 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, se requieren más de 8 sensores para cualquier código, 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. [ 78 ] La naturaleza de pista ú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 pista, lo que reduce su costo y tamaño. La naturaleza del código Gray es útil (en comparación con los códigos de cadena , también llamados secuencias de De Bruijn ), ya que solo un sensor cambiará en cualquier momento, por lo que la incertidumbre durante una transición entre dos estados discretos será solo más o menos una unidad de medición angular que el dispositivo es capaz de resolver. [ 79 ]

Desde que se añadió este ejemplo de 30 grados, ha habido mucho interés en ejemplos con mayor resolución angular. En 2008, Gary Williams, [ 80 ] basándose en trabajos previos, [ 77 ] descubrió un código Gray de una sola pista de 9 bits que proporciona una resolución de 1 grado. Este código Gray se utilizó para diseñar un dispositivo real que se publicó en el sitio Thingiverse . Este dispositivo [ 81 ] 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

Los códigos Gray bidimensionales se utilizan en comunicación para minimizar el número de errores de bits en la modulación de amplitud en cuadratura (QAM) entre puntos adyacentes de la constelación . En una codificación típica, los puntos adyacentes horizontales y verticales de la constelación difieren en un bit, y los puntos adyacentes diagonales difieren en dos bits. [ 82 ]
Los códigos Gray bidimensionales también se utilizan en esquemas de identificación de ubicaciones , donde el código se aplicaría a mapas de área como una proyección Mercator de la superficie terrestre y se usaría una función de distancia bidimensional cíclica apropiada, como la métrica de Mannheim, 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 Mercator. [ 83 ]
Código Gray excesivo
Si se extrae una subsección de un valor de código específico, por ejemplo, los últimos 3 bits de un código Gray de 4 bits, el código resultante será un "código Gray excedente". Este código muestra la propiedad de contar hacia atrás en los bits extraídos si el valor original se incrementa aún más. Esto se debe a que los valores codificados en Gray no presentan el comportamiento de desbordamiento, conocido en la codificación binaria clásica, al superar el valor máximo.
Ejemplo: El código Gray de 3 bits más alto, 7, se codifica como (0)100. Al sumarle 1, se obtiene el número 8, codificado en Gray como 1100. Los últimos 3 bits no se desbordan y cuentan hacia atrás si se incrementa aún más el código original de 4 bits.
Cuando se trabaja con sensores que emiten múltiples valores codificados en Gray de forma secuencial, se debe prestar atención a si el sensor produce esos múltiples valores codificados en un solo código Gray o como códigos separados, ya que de lo contrario los valores podrían parecer que se cuentan hacia atrás cuando se espera un "desbordamiento".
isometría gris
La aplicación biyectiva { 0 ↔ 00 , 1 ↔ 01 , 2 ↔ 11 , 3 ↔ 10 } establece una isometría entre el espacio métrico sobre el campo finito.con la métrica dada por la distancia de Hamming y el espacio métrico sobre el anillo finito(la aritmética modular usual ) con la métrica dada por la distancia de Lee . El mapeo se extiende adecuadamente a una isometría de los espacios de Hamming.ySu importancia radica en establecer una correspondencia entre varios códigos "buenos" pero no necesariamente lineales como imágenes de mapa de grises ende códigos lineales de anillo de. [ 84 ] [ 85 ]
Códigos relacionados
Existen varios códigos binarios similares a los códigos Gray, entre ellos:
- Los códigos Datex o códigos Giannini (1954), como los describió Carl P. Spaulding, [ 7 ] [ 86 ] [ 87 ] [ 88 ] [ 89 ] [ 6 ] utilizan una variante del código O'Brien II .
- Los códigos utilizados por Varec (c. 1954), [ 90 ] [ 91 ] [ 92 ] [ 93 ] utilizan una variante del código O'Brien I , así como variantes del código Gray en base 12 y base 16.
- Código Lucal (1959) [ 94 ] [ 95 ] [ 54 ] también conocido como código binario reflejado modificado (MRB) [ 94 ] [ 95 ] [ nb 3 ]
- El código Gillham (1961/1962), [ 87 ] [ 96 ] [ 6 ] [ 97 ] [ 98 ] utiliza una variante del código Datex y del código O'Brien II .
- Código de Leslie y Russell (1964) [ 99 ] [ 8 ] [ 100 ] [ 96 ]
- Código del Royal Radar Establishment [ 96 ]
- Código Hoklas (1988) [ 101 ] [ 102 ] [ 103 ]
Los siguientes códigos decimales codificados en binario (BCD) también son variantes del código Gray:
- Código Petherick (1953), [ 17 ] [ 104 ] [ 105 ] [ 106 ] [ 52 ] [ 102 ] [ nb 4 ] también conocido como código del Royal Aircraft Establishment (RAE). [ 107 ]
- Códigos O'Brien I y II (1955) [ 108 ] [ 109 ] [ 110 ] [ 88 ] [ 89 ] [ 102 ] (Un código O'Brien tipo I [ nb 5 ] ya fue descrito por Frederic A. Foss de IBM [ 111 ] [ 112 ] y utilizado por Varec en 1954. Posteriormente, también se le conoció como código Watts o código decimal reflejado Watts (WRD) y a veces se le denomina ambiguamente código Gray modificado binario reflejado . [ 113 ] [ 18 ] [ 19 ] [ 114 ] [ 115 ] [ 116 ] [ 117 ] [ 118 ] [ 119 ] [ nb 1 ] [ nb 3 ] Un código O'Brien tipo II ya fue utilizado por Datex en 1954. [ nb 4 ] )
- Código Gray de exceso 3 (1956) [ 120 ] (también conocido como código Gray de exceso 3 , [ 88 ] [ 89 ] [ 6 ] código Gray de exceso 3, código reflejo de exceso 3, código Gray de exceso, [ 102 ] código Gray de exceso, código Gray de 10 excesos 3 o código Gray-Stibitz), descrito por Frank P. Turvey Jr. de ITT . [ 120 ]
- Códigos Tompkins I y II (1956) [ 2 ] [ 109 ] [ 110 ] [ 88 ] [ 89 ] [ 102 ]
- Código Glixon (1957), a veces también llamado ambiguamente código Gray modificado [ 121 ] [ 52 ] [ 122 ] [ 123 ] [ 109 ] [ 110 ] [ 88 ] [ 89 ] [ 102 ] [ nb 3 ] [ nb 5 ]
Véase también
- Secuencia de De Bruijn
- Código de Hamming
- Curva de Hilbert
- Registro de desplazamiento con retroalimentación lineal
- Código de distancia mínima
- Secuencia de Prouhet-Thue-Morse : relacionada con el código Gray inverso.
- Fórmula Ryser
- Algoritmo de Steinhaus-Johnson-Trotter : un algoritmo que genera códigos Gray para el sistema numérico factorial.
Notas
- 1 2 3 Aplicando una sencilla regla de inversión , 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. [C]
- ↑ Secuencia 0, 1, 0, 2, 0, 1, 0, 3, … (secuencia A007814 en el OEIS ).
- 1 2 3 Hay varias variantes del código Gray que se denominan "modificadas" de algún tipo: El código Glixon a veces se denomina código Gray modificado. [D] El código Lucal también se denomina código binario reflejado modificado (MRB). [E] El código O'Brien I o código Watts a veces se denomina código Gray binario reflejado modificado. [F]
- 1 2 3 4 Al intercambiar e invertir tres filas de bits, el código O'Brien II y el código Petherick se pueden convertir uno en el otro.
- 1 2 3 4 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 pueden transformarse uno en el otro.
- ↑ Otros códigos BCD de distancia unitaria incluyen el código Libaw-Craig de 5 bits no relacionado con el código Grayy el código 1-2-1 .
- ↑ Dependiendo de la aplicación objetivo 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 ciertas circunstancias, los estados de borrado total y/o activación total deben omitirse (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 el consumo de energía del circuito lector) o mantener pequeña la varianza de los pesos utilizados (por ejemplo, para reducir el ruido acústico o las fluctuaciones de corriente).
- 1 2 3 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 se acepta la inversión de una de las pistas centrales.
- 1 2 3 4 5 6 Para los códigos O'Brien I y II y Petherick , Susskind , Klar, así como los códigos Gray Exceso-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 obtener un complemento a 9 invirtiendo los tres primeros dígitos e intercambiando los dos dígitos binarios centrales.
Referencias
- ↑ Gray, Joel (marzo de 2020). "Comprendiendo el código Gray: un sistema de codificación fiable" . graycode.ie . Sección: Conclusión . Consultado el 30 de junio de 2023 .
- 1 2 3 4 Tompkins, Howard E. (septiembre de 1956) [1956-07-16]. "Códigos binarios decimales de distancia unitaria para conmutación de dos vías" . Transacciones IRE sobre computadoras electrónicas . Correspondencia. EC-5 (3). Escuela de Ingeniería Eléctrica Moore , Universidad de Pensilvania , Filadelfia, Pensilvania, EE. UU.: 139. Bibcode : 1956IRTEC...5..139T . doi : 10.1109/TEC.1956.5219934 . ISSN 0367-9950 . Archivado del original el 18 de mayo de 2020. Recuperado el 18 de mayo de 2020 . (1 página)
- 1 2 Kautz, William H. (junio de 1958). "Códigos de verificación de errores de distancia unitaria". IRE Transactions on Electronic Computers . EC-7 (2): 179– 180. Bibcode : 1958IRTEC...7..179K . doi : 10.1109/TEC.1958.5222529 . ISSN 0367-9950 . S2CID 26649532 . (2 páginas)
- 1 2 Susskind, Alfred Kriss; Ward, John Erwin (1958-03-28) [1957, 1956]. "III.F. Códigos de distancia unitaria / 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ógica-digital . Technology Books in Science and Engineering. Vol. 1 (3.ª ed.). Nueva York, EE. UU.: Technology Press del Instituto Tecnológico de Massachusetts / John Wiley & Sons, Inc. / Chapman & Hall, Ltd. pp. 3-10–3-16 [3-13–3-16], 6-65–6-60 [6-60]. (x+416+2 páginas) (Nota: El contenido del libro fue preparado originalmente por personal del Laboratorio de Servomecanismos del Departamento de Ingeniería Eléctrica del MIT para los Programas Especiales de Verano celebrados en 1956 y 1957. El "código de 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, intercambiando dos filas de bits e invirtiendo una de ellas, el código se puede transformar en el código de Petherick , mientras que intercambiando e invirtiendo dos filas de bits, se puede transformar en el código de O'Brien II ).
- 1 2 Chinal, Jean P. (enero de 1973). "3.3. Códigos de distancia unitaria". Escrito en París, Francia. Métodos de diseño para sistemas digitales . Traducido por Preston, Alan; Summer, Arthur (1.ª ed. en inglés). Berlín, Alemania: Akademie-Verlag / Springer-Verlag . p. 50. doi : 10.1007/978-3-642-86187-1 . ISBN 978-0-387-05871-9. S2CID 60362404 . Licencia No. 202-100/542/73. Orden No. 7617470(6047) ES 19 B 1 / 20 K 3 . Recuperado el 21-06-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 ).
- 1 2 3 4 5 6 Manual militar: codificadores – Ángulo del eje a digital (PDF) . Departamento de Defensa de los Estados Unidos . 30 de septiembre de 1991. MIL-HDBK-231A. Archivado (PDF) del original el 25 de julio de 2020. Recuperado el 25 de julio de 2020 .(Nota: Sustituye a MIL-HDBK-231(AS) (1970-07-01).)
- 1 2 3 Spaulding, Carl P. (1965-01-12) [1954-03-09]. "Sistema de codificación y traducción digital" (PDF) . Monrovia, California, EE. UU.: Datex Corporation. Patente estadounidense 3165731A . Número de serie 415058. Archivado (PDF) del original el 5 de agosto de 2020. Recuperado el 21 de enero de 2018 .(28 páginas)
- 1 2 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, que incorpora Automation Progress) . Características especiales. 8 (74). Londres, Reino Unido: Morgan-Grampain (Publishers) Limited: 399–404 . Recuperado el 22 de junio de 2020 .(6 páginas)
- 1 2 3 Stibitz, George Robert (1943-01-12) [1941-11-26]. "Contador binario" . Nueva York, EE. UU.: Bell Telephone Laboratories, Incorporated . Patente estadounidense 2,307,868 . Número de serie 420537. Recuperado el 24-05-2020 . pág. 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 se representa mediante un número con 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 el ajuste del contador […] se puede leer de izquierda a derecha como 0,100,000. […] A continuación se muestra la traducción del número de pulsos recibidos a esta notación binaria para los primeros dieciséis pulsos recibidos en las primeras cinco bolas […] Número de pulsos […] Notación binaria […]
(4 páginas) - 1 2 3 4 5 Winder, C. Farrell (octubre de 1959). "Los codificadores de ángulo de eje ofrecen alta precisión" (PDF) . Industrias electrónicas . 18 (10). Chilton Company : 76–80 . Archivado del original (PDF) el 28 de septiembre de 2020. Recuperado el 14 de enero de 2018. pág. 78:
[…] El tipo de rueda de código más popular en
los codificadores ópticos
contiene un patrón de código binario cíclico diseñado para dar una secuencia cíclica de salidas "encendido-apagado". El código binario cíclico también se conoce como código de progresión cíclica, 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 por código de pulsos por
Frank Gray
, también de BTL. De ahí el nombre de código Gray. El código Gray o cíclico se utiliza principalmente para eliminar la posibilidad de errores en la transición de códigos que podrían generar ambigüedades importantes. […]
- 1 2 3 4 5 6 7 8 9 Knuth, Donald Ervin (12 de septiembre de 2014). "Enumeración y retroceso / Generación de todas las n- tuplas" . El arte de la programación informática, volumen 4A: algoritmos combinatorios, parte 1. Vol. 4A (1.ª ed.). Addison-Wesley Professional . págs. 442–443 . ISBN 978-0-13348885-2.(912 páginas)
- 1 2 Gray, Frank (17-03-1953) [13-11-1947]. Comunicación por código de pulsos (PDF) . Nueva York, EE. UU.: Bell Telephone Laboratories, Incorporated . Patente estadounidense 2,632,058 . Número de serie 785697. Archivado (PDF) del original el 05-08-2020 . Recuperado el 05-08-2020 .(13 páginas)
- 1 2 Goldberg, David Edward (1989). Algoritmos genéticos en búsqueda, optimización y aprendizaje automático (1.ª ed.). Reading, Massachusetts, EE. UU.: 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, EE. UU.: Secretario del Ejército de los EE . UU . Patente estadounidense 2.733.432 . Número de serie 401738. Archivado (PDF) del original el 5 de agosto de 2020. Recuperado el 5 de agosto de 2020 .(8 páginas)
- 1 2 Ragland, Earl Albert; Schultheis, Jr., Harry B. (1958-02-11) [1953-10-16]. Sistema de control de posición de código binario sensible a la dirección (PDF) . North Hollywood, California, EE. UU.: Bendix Aviation Corporation. Patente estadounidense 2,823,345 . Número de serie 386524. Archivado (PDF) del original el 5 de agosto de 2020. Recuperado el 5 de agosto de 2020 .(10 páginas)
- ↑ Domeshek, Sol; Reiner, Stewart (24-06-1958) [08-01-1954]. Sistema de rectificación automática (PDF) . Secretario de la Marina de los EE . UU. Patente estadounidense 2,839,974 . Número de serie 403085. Archivado (PDF) del original el 05-08-2020 . Recuperado el 05-08-2020 .(8 páginas)
- 1 2 3 Petherick, Edward John (octubre de 1953). Un sistema cíclico progresivo binario-codificado-decimal para representar números (Nota técnica MS15). Farnborough, Reino Unido: Royal Aircraft Establishment (RAE).(4 páginas) (Nota: A veces se le denomina Sistema binario-decimal codificado cíclicamente para representar números ).
- 1 2 Evans, David Silvester (1960). Fundamentos de instrumentación digital (1.ª ed.). Londres, Reino Unido: Hilger & Watts Ltd. Recuperado el 24 de mayo de 2020 . (39 páginas)
- 1 2 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 . Recuperado el 24 de mayo de 2020. págs. 20–23:
[…] Decodificación. […] Para decodificar los códigos CPB o
WRD
, se puede aplicar una regla de inversión simple. 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 se leyó, es decir, 0 por 0 y 1 por 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 un par, la línea siguiente no se invierte y cuando un par se cambia a un impar, la línea siguiente 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.). […] Al aplicar la regla de inversión línea por línea al código WRD, se obtiene un patrón [de
código 1, 2, 4, 2
] donde, nuevamente, se pueden asignar valores numéricos a los dígitos y sumarlos década por década. La suma de los dígitos puede ser muy útil, por ejemplo, en un sistema de escaneo de alta velocidad; pero en un sistema de decodificación paralela […], es habitual tratar cada cuarteto binario o década como una entidad independiente. 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, dando como resultado el patrón repetitivo del [código WRD rectificado]. Esto es extremadamente fácil de lograr, ya que el único cambio requerido es la inversión del significado de la pista D o del dígito complementario. […]
(8+82 páginas) (Nota: El autor no menciona a Gray en absoluto y denomina al código Gray estándar "Código Binario Permutado Cíclico" (CPB); el índice del libro lo cataloga erróneamente como "código binario puro cíclico").
- ↑ Newson, PA (1965). Tablas para la codificación binaria de ángulos (1.ª ed.). Autoridad de Energía Atómica del Reino Unido , Grupo de Investigación, Establecimiento de Investigación de Energía Atómica , Harwell, Reino Unido: Oficina de Publicaciones de Su Majestad . Recuperado el 24 de mayo de 2020 . (12 páginas)
- ↑ Heath, FG (septiembre de 1961). "Pioneros de la codificación binaria" . Journal of the Institution of Electrical Engineers . 7 (81). Manchester College of Science and Technology , Facultad de Tecnología de la Universidad de Manchester , Manchester, Reino Unido: Institution of Engineering and Technology (IET): 539–541 . doi : 10.1049/jiee-3.1961.0300 . Archivado del original el 28 de marzo de 2020. Recuperado el 22 de junio de 2020 .(3 páginas)
- ↑ Cattermole, Kenneth W. (1969). Escrito en Harlow, Essex, Reino Unido. Principios de la modulación por impulsos codificados (1.ª ed.). Londres, Reino Unido / Nueva York, EE. UU.: Iliffe Books Ltd. / American Elsevier Publishing Company, Inc. págs. 245, 434. ISBN 978-0-444-19747-4LCCN 78-80432 . SBN 444-19747-8pág. 245:
[…] Parece haber cierta confusión sobre la atribución de este código, ya que se le ha asociado con dos inventores llamados Gray. Cuando oí el nombre por primera vez, lo atribuí a Elisha Gray , y Heath da fe de su uso. Mucha gente lo atribuye a Frank Gray, de Bell Telephone Laboratories , quien en 1947 propuso por primera vez su uso en tubos codificadores ; su patente figura en la bibliografía. […]
(2+448+2 páginas) - ↑ Edwards, Anthony William Fairbank (2004). Engranajes de la mente: La historia de los diagramas de Venn . Baltimore, Maryland, EE. UU.: Johns Hopkins University Press . págs. 48, 50. ISBN 0-8018-7434-3.
- ^ 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+16+4 páginas y 4 páginas desplegables) (Nota: Este folleto se publicó de forma anónima, pero se sabe que su autor es Louis Gros).
- ^ Lucas, Édouard (noviembre de 1883). La gira de 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.(Nota: 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 personnes pacientes possédé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]. ark:/12148/bpt6k462461g. Archivado del original el 18-12-2020 . Recuperado el 18-12-2020 . (1 página)
- ↑ Allardice, RE; Fraser, AY (febrero de 1883). Allardice, Robert Edgar ; Fraser, Alexander Yule (eds.). "La Tour d'Hanoï" . Actas de la Sociedad Matemática de Edimburgo (en inglés y francés). 2 (5). Sociedad Matemática de Edimburgo : 50–53 . doi : 10.1017/S0013091500037147 . eISSN 1464-3839 . ISSN 0013-0915 . S2CID 122159381 . (4 páginas)
- ^ 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).
- 1 2 Herter, Felix; Rote, Günter (2018-11-14) [2018-08-09, 2017-12, 2017-08-09, 2016-04-22]. "Enumeración de código Gray sin bucles y la Torre de Bucarest" ( PDF) . Theoretical Computer Science . 748. Berlín, Alemania: 40–54 . arXiv : 1604.06707 . doi : 10.1016/j.tcs.2017.11.017 . ISSN 0304-3975 . S2CID 4014870. Archivado (PDF) del original el 2020-12-16 . Recuperado el 2020-12-16 . (15/18/19/24 páginas)
- ↑ Gardner, Martin (agosto de 1972). «Las curiosas propiedades del código Gray y cómo se puede utilizar para resolver acertijos». Scientific American . Juegos matemáticos . Vol. 227, n.º 2, pág. 106. (1 página)
- ↑ Diestel, Reinhard (2025). Teoría de grafos . Textos de Posgrado en Matemáticas (Sexta Edición 2025 ed.). Erscheinungsort nicht ermittelbar: Springer. ISBN 978-3-662-70106-5.
- ↑ 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. (1991-06-21). "Baudot, Jean Maurice Emile" . En Froehlich, Fritz E.; Kent, Allen ; Hall, Carolyn M. (eds.). The Froehlich/Kent Encyclopedia of Telecommunications: Volume 2 - Batteries to Codes-Telecommunications . Vol. 2. Marcel Dekker Inc. / CRC Press . pp. 31–34 . ISBN 0-8247-2901-3LCCN 90-3966 . Consultado el 20 de diciembre de 2020. pág. 31:
[…] En 1876 se construyó un prototipo de Baudot (que tardó cuatro años en desarrollarse). El transmisor tenía cinco teclas similares a las de un piano. Los mensajes se enviaban mediante un código especial de cinco elementos ideado por Baudot […]
- ↑ Fischer, Eric N. (2000-06-20). "La evolución de los códigos de caracteres, 1874–1968" . ark:/13960/t07x23w8s . Recuperado el 2020-12-20 .
[…] En 1872, [Baudot] comenzó a investigar un sistema telegráfico que permitiría a varios operadores transmitir simultáneamente a través de un solo cable y, a medida que se recibían 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 retardo variable seguido de un pulso de una sola unidad, el sistema de Baudot utilizaba seis unidades de tiempo uniformes para transmitir cada carácter. […] su primer telégrafo probablemente utilizaba 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 seguía necesitando signos de puntuación y dígitos, por lo que adoptó de
Hughes
el uso de dos caracteres especiales, uno para letras y otro para cifras, que hacían que la impresora cambiara de mayúsculas y minúsculas al mismo tiempo que avanzaba el papel sin imprimir. El código de cinco unidades que empezó a usar 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. […]
- ↑ 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)
- ↑ "Capítulo IX. Señales de transmisión. Artículo 35. Señales de transmisión de los alfabetos telegráficos internacionales n.º 1 y 2, señales de código Morse y señales de los instrumentos Hughes y Siemens." Reglamento telegráfico anexo 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 Publicaciones de Su Majestad . 1933 [1932]. págs. 32–40 [34]. 43-152-2 / 18693. Archivado (PDF) del original el 21-12-2020 . Recuperado el 21-12-2020 . (1+2*120+26 páginas)
- ↑ MacMillan, David M. (27-04-2010) [25-04-2010, 23-04-2010]. "Códigos que no cuentan: algunos códigos de telégrafo de impresión como productos de sus tecnologías (con especial atención a la teletipocompositora)" . lemur.com . Revisión 3. Mineral Point, Wisconsin, EE. UU. Archivado del original el 18-12-2020 . Recuperado el 20-12-2020 .
- ↑ 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 a 118. ISBN 3-21181779-4ISSN 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. Vol. 1. Nueva York, EE. UU.: American Federation of Information Processing Societies , Association for Computing Machinery . págs. 15-20 . doi : 10.1145/1499799.1499803 . ISBN 978-1-4503-7917-5. S2CID 14114959 . Archivado del original el 17-12-2020 . Recuperado el 17-12-2020 . p. 17:
[…] En 1874,
Schaeffler
inventó otro
telégrafo impresor
, 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 al de un piano, el operador seleccionaba una letra y, por lo tanto, 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 podía imprimir la letra correcta. Los telégrafos impresores 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
PCM
, Schaeffler lo había aplicado en su telégrafo en 1874, y por una razón similar: confiabilidad. Tenía dedos de contacto que detectaban consecutivamente todas las combinaciones en cinco levas; la correcta activaba la impresión. Si los dedos debían realizar un número mínimo de movimientos, la solución era el código binario reflejado. Para Schaeffler, esta idea era secundaria. Más concretamente, el código se describe en una carta del empleado de correos austriaco J[ohann] N[epomuk] Teufelhart,
insertada allí
como nota a pie de página, donde relata que Schaeffler lo descubrió combinando barras de madera con las diferentes combinaciones hasta obtener la mejor solución. Otro empleado de correos, Alexander Wilhelm Lambert de Linz, afirma haberle mostrado este código a Schaeffler ya en 1872, pero esta afirmación no es clara y no se puede verificar. […]
(6 páginas)
- ↑ Goodall, William M. (enero de 1951). "Televisión por modulación de código de pulsos". Bell System Technical Journal . 30 (1): 33– 49. Bibcode : 1951BSTJ...30...33G . doi : 10.1002/j.1538-7305.1951.tb01365.x .(Nota: Presentado oralmente ante la Convención Nacional de la IRE, Ciudad de Nueva York, marzo de 1949).
- ↑ Karnaugh, Maurice (noviembre de 1953) [1953-04-23, 1953-03-17]. "El método de mapas para la síntesis de circuitos lógicos combinacionales" (PDF) . Transactions of the American Institute of Electrical Engineers, Part I: Communication and Electronics . 72 (5): 593– 599. Bibcode : 1953TAICE..72..593K . doi : 10.1109/TCE.1953.6371932 . S2CID 51636736. Documento 53-217. Archivado del original (PDF) el 2017-04-16 . Recuperado el 2017-04-16 . (Nota: También incluye una breve reseña de Samuel H. Caldwell ).
- ↑ Wakerly, John F. (1994). Diseño digital: principios y prácticas . Nueva Jersey, EE. UU.: Prentice Hall . págs. 48–49 , 222. ISBN 0-13-211459-3.(Nota: Las dos secciones de la página, tomadas en conjunto, indican que los mapas de Karnaugh están etiquetados con código Gray. La primera sección explica que están etiquetados con un código que cambia solo un bit entre entradas, y la segunda sección indica que dicho código se denomina código Gray).
- ↑ Brown, 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ág. 49. ISBN 978-0-486-42785-0pág. 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 + apéndice)
- ^ 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 , donde 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, requiere 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 .
- 1 2 3 4 5 Bhat, Girish S.; Savage, Carla Diane (1996). "Códigos Gray equilibrados" . Revista electrónica de combinatoria . 3 (1) R25. doi : 10.37236/1249 .
- ↑ Donohue, Ryan (2003). "Sincronización en circuitos lógicos digitales" (PDF) . Archivado (PDF) del original el 15 de enero de 2018. Recuperado el 15 de enero de 2018 .
- ↑ Hulst, George D. (1962-02-06) [1957-11-15]. Contador de código binario reflejado (PDF) . Nutley, Nueva Jersey, EE. UU.: International Telephone and Telegraph Corporation (ITT). Patente estadounidense 3,020,481 . Número de serie 696793. Archivado (PDF) del original el 6 de agosto de 2020. Recuperado el 6 de agosto de 2020 .(5 páginas)
- 1 2 3 4 Powell, E. Alexander (junio de 1968). "Códigos particularmente útiles para conversiones analógicas a digitales". Una breve nota sobre códigos útiles para circuitos de control de fluidos (PDF) . Cranfield, Reino Unido: The College of Aeronautics , Departamento de Ingeniería de Producción. págs. 7, 9. S2CID 215864694. Memorando CoA 156. Archivado (PDF) del original el 15 de diciembre de 2020. Recuperado el 15 de diciembre de 2020 . (18 páginas) (Nota: El documento denomina al código Glixon como código Gray modificado 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 en el direccionamiento de código Gray". Actas del Sexto Simposio de los Grandes Lagos sobre VLSI . IEEE Computer Society . págs. 178–181 . doi : 10.1109/GLSV.1996.497616 . ISBN 978-0-8186-7502-7. ISSN 1066-1395 . S2CID 52837310 .
- 1 2 Doran, Robert "Bob" William (marzo de 2007). El código Gray (PDF) . Serie de informes de investigación CDMTCS. Centro de Matemáticas Discretas y Ciencias de la Computación Teórica, Universidad de Auckland , Nueva Zelanda. CDMTCS-304. Archivado (PDF) del original el 22 de mayo de 2020. Recuperado el 23 de mayo de 2020 .(25 páginas)
- ↑ Su, Ching-Long; Tsui, Chi-Ying; Despain, Alvin M. (1994). Diseño de arquitectura de bajo consumo y técnicas de compilación para procesadores de alto rendimiento (PDF) (Informe). Laboratorio de Arquitectura Avanzada de Computadoras. ACAL-TR-94-01. Archivado (PDF) del original el 26 de julio de 2020. Recuperado el 17 de diciembre de 2020 .
- ↑ Guo, Hui; Parameswaran, Sri (abril-junio de 2010). "Codificación Gray desplazada para reducir la conmutación del bus de direcciones de memoria de instrucciones para sistemas embebidos de bajo consumo". Journal of Systems Architecture . 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 Gray" . The Aggregate . Departamento de Ingeniería Eléctrica e Informática, Facultad de Ingeniería, Universidad de Kentucky . Archivado del 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 del original el 29 de enero de 2022. Consultado el 29 de enero de 2022 .
- ↑ (secuencia A290772 en el OEIS )
- 1 2 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 .
- ↑ Wagner, DG; West, J. (1991). "Construcción de códigos Gray uniformes". Congressus Numerantium . 80 : 217– 223.
- 1 2 Suparta, I. Nengah (2005). "Una prueba simple de la existencia de códigos Gray exponencialmente equilibrados" . Electronic Journal of Combinatorics . 12 N19. doi : 10.37236/1986 .
- 1 2 Flahive, Mary Elizabeth ; Bose, Bella (2007). "Equilibrio de códigos Gray R -arios cíclicos " . Revista electrónica de combinatoria . 14 R31. doi : 10.37236/949 .
- ↑ Strackx, Raoul; Piessens, Frank (2016). "Ariadne: Un enfoque mínimo para la continuidad del estado" . Usenix Security . 25 .
- ↑ Savage, Carla Diane (1997). "Un estudio de los códigos Gray combinatorios" . SIAM Review . 39 (4). Society for Industrial and Applied Mathematics (SIAM): 605– 629. Bibcode : 1997SIAMR..39..605S . CiteSeerX 10.1.1.39.1924 . doi : 10.1137 /S0036144595295272 . JSTOR 2132693. S2CID 6375360 .
- 1 2 Savage, Carla Diane ; Winkler, Peter (1995). "Códigos Gray monótonos y el problema de los niveles intermedios" . Journal of Combinatorial Theory . Serie A. 70 (2): 230– 248. doi : 10.1016/0097-3165(95)90091-8 . ISSN 0097-3165 .
- ↑ Savage, Carla Diane (1997-01-16). "Ciclos largos en los dos niveles intermedios 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 del original el 13 de mayo de 2020. Recuperado el 13 de mayo de 2020 . (15 páginas)
- 1 2 Goddyn, Luis (1999). "MATH 343 Matemáticas Discretas Aplicadas Materiales Suplementarios" (PDF) . Departamento de Matemáticas, Universidad Simon Fraser . Archivado del original (PDF) el 17 de febrero de 2015.
- ↑ Sawada, Joseph "Joe"; Wong, Dennis Chi-Him (2007). "Un algoritmo rápido para generar códigos Beckett-Gray". Electronic Notes in Discrete Mathematics . 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, EE. UU.: Wiley-Interscience , John Wiley & Sons, Inc., págs. 206-207 . ISBN 0-471-71945-5. LCCN 73-147235 . (12+577+1 páginas)
- 1 2 NZ 264738 , Spedding, Norman Bruce, "Un codificador de posición", publicado el 28-10-1994
- ↑ Spedding, Norman Bruce (28-10-1994). "La siguiente es una copia de la patente provisional presentada en nombre de Industrial Research Limited el 28-10-1994 – Patente NZ 264738" (PDF) . Industrial Research Limited. Patente NZ 264738. Archivado (PDF) del original el 29-10-2017 . Recuperado el 14-01-2018 .
- ↑ Hiltgen, Alain P.; Paterson, Kenneth G.; Brandestini, Marco (septiembre de 1996). "Códigos Gray de una sola vía". IEEE Transactions on Information Theory . 42 (5): 1555– 1561. Bibcode : 1996ITIT...42.1555H . doi : 10.1109/18.532900 . Zbl 857.94007 .
- ↑ Hiltgen, Alain P.; Paterson, Kenneth G. (septiembre de 2001). "Códigos de circuitos de vía única" (PDF) . IEEE Transactions on Information Theory . 47 (6): 2587– 2595. Bibcode : 2001ITIT...47.2587H . CiteSeerX 10.1.1.10.8218 . doi : 10.1109/18.945274 . Archivado (PDF) del original el 15 de enero de 2018. Recuperado el 15 de enero de 2018 .
- ↑ Etzion, Tuvi; Schwartz, Moshe (noviembre de 1999) [17 de mayo de 1998]. "La estructura de los códigos Gray de pista única" (PDF) . IEEE Transactions on Information Theory . IT-45 (7): 2383–2396 . Bibcode : 1999ITIT...45.2383S . CiteSeerX 10.1.1.14.8333 . doi : 10.1109/18.796379 . Archivado (PDF) del original el 15 de enero de 2018. Recuperado el 15 de enero de 2018 . Informe técnico CS0937 archivado el 15/12/2018 en Wayback Machine.
- ↑ Sillke, Torsten (1997) [1993-03-01]. "Códigos grises con pocas pistas (una cuestión de Marco Brandestini)" . Archivado del original el 29-10-2017 . Recuperado el 29-10-2017 .
- 1 2 Etzion, Tuvi; Paterson, Kenneth G. (mayo de 1996). "Códigos Gray de pista única casi óptimos" (PDF) . IEEE Transactions on Information Theory . IT-42 (3): 779–789 . Bibcode : 1996ITIT...42..779E . CiteSeerX 10.1.1.14.1527 . doi : 10.1109/18.490544 . Archivado (PDF) del original el 30-10-2016 . Recuperado el 08-04-2018 .
- ↑ Ruskey, Frank ; Weston, Mark (18 de junio de 2005). "Un estudio de los diagramas de Venn: diagramas simétricos" . Dynamic Surveys. Electronic Journal of Combinatorics . doi : 10.37236/26 .
- ↑ Alciatore, David G.; Histand, Michael B. (1999). Mecatrónica . McGraw–Hill Education – Europa. ISBN 978-0-07-131444-2.
- ↑ Williams, Gary (25-07-2008) .Se busca "código gris de pista única" para la codificación de 360 grados con 9 sensores . Experts Exchange .
- ↑ Bauer, Florian. "Codificador rotatorio de código Gray de pista única absoluta de 9 bits" . Thingiverse .
- ↑ Krishna (11 de mayo de 2008). "Código gris para QAM" . Archivado del original el 29 de octubre de 2017. Recuperado 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)
- Thomas Strang y otros (octubre de 2009). «Uso de códigos Gray como identificadores de ubicación» (PDF) . ResearchGate (Resumen) (en alemán e inglés). Archivado del original el 3 de septiembre de 2020.
- ↑ Greferath, Marcus (2009). «Una introducción a la teoría de la codificación lineal en anillo». En Sala, Massimiliano; Mora, Teo; Perret, Ludovic; Sakata, Shojiro; Traverso, Carlo (eds.). Bases de Gröbner, codificación y criptografía . Springer Science & Business Media . pág. 220. ISBN 978-3-540-93806-4.
- ↑ Solé, Patrick (2016). «Códigos Kerdock y Preparata» . En Hazewinkel, Michiel (ed.). Enciclopedia de Matemáticas . Springer Science+Business Media . ISBN 978-1-4020-0609-8Archivado del original el 29 de octubre de 2017 .
- ↑ Spaulding, Carl P. (1965-07-12). Cómo usar codificadores de eje . Monrovia, California, EE. UU.: Datex Corporation.(85 páginas)
- 1 2 Wheeler, Edwin L. (1969-12-30) [1968-04-05]. Codificador analógico a digital (PDF) . Nueva York, EE. UU.: Conrac Corporation . Patente estadounidense 3487460A . Número de serie 719026 (397812). Archivado (PDF) del original el 2020-08-05 . Recuperado el 2018-01-21 . pág. 5, columna izquierda 9, filas 15–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 divulga en la patente estadounidense
3,165,731
. La disposición es tal que el código Datex define los bits para el conteo 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)
- 1 2 3 4 5 6 Dokter, Folkert; Steinhauer, Jürgen (18 de junio de 1973). "2.4. Codificación de números en el sistema binario". Electrónica digital . Philips Technical Library (PTL) / Macmillan Education (Reimpresión de la 1.ª ed. en inglés ). Eindhoven, Países Bajos: The Macmillan Press Ltd. / NV Philips' Gloeilampenfabrieken . págs. 32, 39, 50–53 . doi : 10.1007/978-1-349-01417-0 . ISBN 978-1-349-01419-4. SBN 333-13360-9pág. 53:
[…] El código Datex […] utiliza el código O'Brien II dentro de cada década y refleja los 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 genera dificultades particulares: siempre que la palabra clave para las decenas represente un número impar, las palabras clave para las unidades decimales se dan como complementos a 9 mediante la inversión del cuarto dígito binario. […]
- 1 2 3 4 5 Doctor, 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 . ISBN 3-87145-272-6.(xii+327+3 páginas)
- ↑ "...medición precisa del nivel de líquido, ¡a CUALQUIER DISTANCIA!" . Petroleum Refiner (Anuncio). 33 (9). Gulf Publishing Company : 368. Septiembre de 1954. ISSN 0096-6517 . pág. 368:
[...] La operación completa de despacho, medición y control remoto se integra en un único sistema unitario cuando se instala un sistema de telemetría por código de pulsos "Varec". [...]
- ↑ Bishup, Bernard W.; Repeta, Anthony A.; Giarrizzo, Frank C. (1968-08-13) [1963-04-03]. "Sistema de telemetría y control de supervisión con señales de telemetría normalmente continuas" . Leeds and Northrup Co. US3397386A.
- ↑ "Formato de pulso del codificador". Manual de instalación y funcionamiento del transmisor de 4 hilos Micro 1900 (PDF) . Cypress, California, EE. UU.: Whessoe Varec, Inc. Enero de 1993 [1991-07-01]. págs. 04-4 – 04-8 . 33-08461. Archivado (PDF) del original el 16 de mayo de 2020. Consultado el 16 de mayo de 2020 . (38 páginas) (Nota: En la posición 5, donde dice "Pulgadas" en la página 04-8, debería aparecer "0111" en lugar de "1111").
- ↑ "2.2.3.3 Formato de datos de nivel MSP". Varec Modelo 1900 – Transmisor Micro de 4 hilos (BSAP a Protocolo de Marca/Espacio (MSP)) – Notas de aplicación (PDF) . Emerson Electric . págs. 11–14 . Archivado (PDF) del original el 16 de mayo de 2020. Recuperado el 16 de mayo de 2020 . (vi+33 páginas)
- 1 2 Lucal, Harold M. (diciembre de 1959). "Operaciones aritméticas para computadoras digitales usando un binario reflejado modificado". IRE Transactions on Electronic Computers . EC-8 (4): 449– 458. doi : 10.1109/TEC.1959.5222057 . ISSN 0367-9950 . S2CID 206673385 . (10 páginas)
- 1 2 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, EE. UU.: McGraw-Hill Book Company . págs. 152–164 . LCCN 68-16491 . OCLC 439460 .
- 1 2 3 Wightman, Eric Jeffrey (1972). «Capítulo 6. Medición de desplazamiento» . Instrumentación en el control de procesos (1.ª ed.). Londres, Reino Unido: Butterworth & Co (Publishers) Ltd. págs. 122–123 . ISBN 0-408-70293-1págs. 122-123:
[…] También se conocen otras formas de código. Entre ellas se encuentran el código del Royal Radar Establishment ; el código de tres decimales ; el código Gillham , recomendado por la OACI para la transmisión automática de altitud en el control del tráfico aéreo ; el código Petherick y el código Leslie y Russell del Laboratorio Nacional de Ingeniería . Cada uno tiene sus ventajas particulares y son ofrecidos como opciones por diversos fabricantes de codificadores. […]
(12+367+5 páginas) - ↑ Phillips, Darryl (26-07-2012) [1998]. "Altitud – MODEC ASCII" . AirSport Avionics. Archivado del original el 26-07-2012.
- ↑ Stewart, K. (3 de diciembre de 2010). "Código Gray de aviación: explicación del código Gillham" . Custom Computer Services (CCS). Archivado del original el 16 de enero de 2018. Recuperado el 14 de enero de 2018 .
- ↑ Leslie, William "Bill" HP; Russell, A. (1964). Un código decimal progresivo cíclico para una traducción simple a salidas decimales y analógicas (Informe). East Kilbride, Glasgow, Reino Unido: National Engineering Laboratory . Informe NEL 129.(17 páginas)
- ↑ Leslie, William "Bill" HP (1974). "El trabajo sobre NC en NEL" . En Koenigsberger, Franz; Tobias, Stephen Albert (eds.). Actas de la Decimocuarta Conferencia Internacional sobre Diseño e Investigación de Máquinas Herramienta, 12-14 de septiembre de 1973. The Macmillan Press Ltd. pp. 215-224 [215, 217]. doi : 10.1007/978-1-349-01921-2_30 . ISBN 978-1-34901921-2LCCN 73-16545 . SBN 333-14913-0Archivado del 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 . 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 .
- 1 2 3 4 5 6 7 8 9 10 11 Hoklas, Archibald (2005). "Código Gray – Código de distancia unitaria" . Archivado del original el 15 de enero de 2018. Recuperado el 15 de enero de 2018 .
- ^ 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, Edward John; 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 sein 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)
- 1 2 Charnley, CJ; Bidgood, RE; Boardman, GET (octubre de 1965). "El diseño de un codificador de posición neumático". Actas de la IFAC , volúmenes 2 (3). The College of Aeronautics, Cranfield, Bedford, Inglaterra: 75–88 . doi : 10.1016/S1474-6670(17)68955-9 . Capítulo 1.5.
- ↑ Hollingdale, Stuart H. (1958-09-19). "Sesión 14. Procesamiento de datos" . Aplicaciones de las computadoras (Ponencia de conferencia). Atlas – Aplicaciones de las computadoras, Universidad de Nottingham, 15-19 de septiembre de 1958. Archivado del original el 25 de mayo de 2020. Recuperado el 25 de mayo de 2020 .
- 1 2 3 O'Brien, Joseph A. (mayo de 1956) [1955-11-15, 1955-06-23]. "Códigos decimales cíclicos para convertidores analógico-digitales" . Transactions of the American Institute of Electrical Engineers, Part I: Communication and Electronics . 75 (2). Bell Telephone Laboratories, Whippany, Nueva Jersey, EE. UU.: 120–122 . Bibcode : 1956TAICE..75..120O . doi : 10.1109/TCE.1956.6372498 . ISSN 0097-2452 . S2CID 51657314. Artículo 56-21. Archivado del original el 18 de mayo de 2020. Recuperado el 18 de mayo de 2020 . (3 páginas) (Nota: Este documento fue preparado para su presentación en la Reunión General de Invierno de la AIEE, Nueva York, EE. UU., del 30 de enero al 3 de febrero de 1956).
- 1 2 3 4 5 6 7 8 9 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 .
- 1 2 3 4 5 6 7 8 9 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 . ISBN 3-540-06241-6. LCCN 73-80607 .
- ↑ Foss, Frederic A. (1960-12-27) [1954-12-17]. "Control Systems" (PDF) . International Business Machines Corp. Fig. 7, Fig. 8, Fig. 11. Patente estadounidense 2966670A . Número de serie 475945. Archivado (PDF) del original el 21-06-2020 . Recuperado el 05-08-2020 .(14 páginas) (Nota: El autor denominó 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". IRE Transactions on Electronic Computers . EC-3 (4): 1– 6. Bibcode : 1954TIPEC...3L9244F . 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.(Nota: El código Watts se denominaba código WRD o Watts Reflected Decimal para distinguirlo de otros códigos utilizados en Hilger & Watts Ltd. )
- ↑ Benjamin, PW; Nicholls, GS (1963). "3.2.2 Digitalizadores electromecánicos" . Medición de espectros de neutrones mediante escaneo semiautomático de protones de retroceso en emulsiones fotográficas . Autoridad de Energía Atómica del Reino Unido , Establecimiento de Investigación de Armas Atómicas , Reino Unido: Departamento de Energía de los Estados Unidos . págs. 8–10 , 19. Informe AWRE n.° NR 5/63. (23 páginas)
- ↑ Klinkowski, James J. (1967-03-14) [1964-03-23]. "Circuitos decodificadores de matriz de diodos electrónicos" (PDF) . Detroit, Michigan, EE. UU.: Burroughs Corporation . Patente estadounidense 3309695A . Número de serie 353845. Archivado (PDF) del original el 23 de mayo de 2020. Recuperado el 23 de mayo de 2020 .(5 páginas)
- ↑ Klinkowski, James J. (1970-03-31) [1966-12-22]. "Convertidor de señal decimal codificada en binario" (PDF) . Detroit, Michigan, EE. UU.: Burroughs Corporation . Patente estadounidense 3504363A . Número de serie 603926. Archivado (PDF) del original el 23 de mayo de 2020. Recuperado el 23 de mayo de 2020 .(7 páginas)
- ↑ "[título desconocido]". Electrical Design News . 12 . Rogers Publishing Company . 1967. ISSN 0012-7515 .
- ↑ Tóth-Zentai, Györgyi (1979-10-05). "Algunos problemas de los convertidores digitales de rotación angular" . Periodica Polytechnica Electrical Engineering . 23 ( 3– 4). Departamento de Tecnología Electrónica, Universidad Técnica, Budapest, Hungría: 265–270 [266] . Recuperado el 23 de mayo de 2020 .(6 páginas) (Nota: Muestra un código Watts de 6 dígitos ) .
- ↑ Savard, John JG (2018) [2006]. "Representaciones decimales" . quadibloc . Archivado del original el 16 de julio de 2018. Recuperado el 16 de julio de 2018 .
- 1 2 Turvey, Jr., Frank P. (1958-07-29) [1956-05-17]. "Codificador de conteo de pulsos" (PDF) . Nutley, Nueva Jersey, EE. UU.: International Telephone and Telegraph Corporation . Patente estadounidense 2845617A . Número de serie 585494. Archivado (PDF) del original el 23 de mayo de 2020. Recuperado el 23 de mayo de 2020 .(5 páginas)
- 1 2 Glixon, Harry Robert (marzo de 1957). "¿Puede aprovechar el código binario-decimal cíclico?" . Control Engineering . 4 (3). Technical Publishing Company , una división de Dun-Donnelley Publishing Corporation, Dun & Bradstreet Corp .: 87–91 . ISSN 0010-8049 . (5 páginas)
- 1 2 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 . ISBN 3-540-05058-2LCCN 75-131547 . ISBN 978-3-642-80561-5.(viii+252 páginas) 1.ª edición (Nota: Al igual que Kämmerer , los autores describen un código Glixon de 6 bits y 20 ciclos).
- ^ 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. (Nota: También existe una segunda edición de 1973. Al igual que Borucki y Dittmann , pero sin denominarla código Glixon, el autor crea un código tetrádico cíclico de 20 bits a partir del código Glixon y una variante del código Glixon con el bit de orden superior invertido).
- ^ Paul, Matthias 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 .(Nota: El autor denominó a este código Schleifencode (en español: "código de bucle"). Se diferencia del código BCD de Gray únicamente en la codificación del estado 0, lo que lo convierte en un código cíclico de distancia unitaria para aplicaciones rotatorias de círculo completo. Evitar el patrón de código de ceros permite la autocomprobación del bucle y el uso de las líneas de datos para la distribución ininterrumpida de energía).
- ^ 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 . pag. 17.ISBN 3-11-083160-0. . N.º de archivo 7990709. Archivado del original el 1 de junio de 2020. Consultado el 13 de abril de 2020 .(205 páginas) (Nota: Una reimpresión de la primera edición de 2019 está disponible con ISBN 3-11002793-3,978-3-11002793-8También existe una cuarta edición revisada 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.ISBN 3-11011700-2.(320 páginas) (Nota: El autor denominó a este código Einheitsabstandscode (en español: "código de distancia unitaria"). Intercambiando dos filas de bits e invirtiendo una de ellas, se puede transformar en el código O'Brien II , mientras que intercambiando e invirtiendo dos filas de bits, se puede transformar en el código Petherick ).
Lecturas adicionales
- Richards, Richard Kohler (1955). Operaciones aritméticas en computadoras digitales (5.ª ed.). Nueva York, EE. UU.: 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 .
- Black, Paul E. (25 de febrero de 2004). "Código gris" . NIST .
- Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). «Sección 22.3. Códigos Gray» . Numerical Recipes: The Art of Scientific Computing (3.ª ed.). Nueva York, EE. UU.: Cambridge University Press . ISBN 978-0-521-88068-8Archivado del original el 11 de agosto de 2011. Consultado el 18 de agosto de 2011 .
- Savage, Carla Diane (1997). "Un estudio de los códigos Gray combinatorios" . SIAM Review . 39 (4). Society for Industrial and Applied Mathematics (SIAM): 605– 629. Bibcode : 1997SIAMR..39..605S . CiteSeerX 10.1.1.39.1924 . doi : 10.1137/S0036144595295272 . JSTOR 2132693. S2CID 6375360 .
- Wilf, Herbert Saul (1989). «Capítulos 1–3». Algoritmos combinatorios: una actualización . Sociedad de Matemáticas Industriales y Aplicadas (SIAM). ISBN 0-89871-231-9.
- Dewar, Megan; Stevens, Brett (29 de agosto de 2012). Ordenamiento de diseños de bloques: códigos Gray, ciclos universales y configuración . CMS Books in Mathematics (1.ª ed.). Nueva York, EE. UU.: Springer Science+Business Media . doi : 10.1007/978-1-4614-4325-4 . ISBN 978-1-46144324-7ISSN 1613-5237
- Maxfield, Clive "Max" (01/10/2012) [28/05/2011]. "Fundamentos del código gris" . Design How-To . EETimes . Parte 1. Archivado del original el 30/10/2017 . Recuperado el 30/10/2017 .Parte 2 Parte 3
- Warren, Jr., Henry S. (2013). «Capítulo 13: Código gris». Hacker's Delight (2.ª ed.). Addison Wesley – Pearson Education, Inc. pp. 311–317 . ISBN 978-0-321-84268-8.(7 páginas)
- Zinovik, Igor; Kroening, Daniel; Chebiryak, Yury (2008-03-21). "Cálculo de códigos Gray combinatorios binarios mediante búsqueda exhaustiva con solucionadores SAT". IEEE Transactions on Information Theory . 54 (4). IEEE : 1819–1823 . Bibcode : 2008ITIT...54.1819Z . 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 distancia unitaria" . IRE Transactions on Electronic Computers . EC-6 (2): 122–123 . Bibcode : 1957IRTEC...6..122O . 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: fácilmente convertible para codificación de posición de eje" (PDF) . Wireless World . Vol. 87, n.º 1542. Facultad de Ciencias Naturales, Universidad de las Indias Occidentales . págs. 86-87 . Archivado (PDF) del 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, del Proyecto de Demostraciones de Wolfram (con implementación en Mathematica). 2007.
- Diccionario de algoritmos y estructuras de datos del NIST: Código Gray .
- Guía del autoestopista para la computación evolutiva, P21: ¿Qué son los códigos Gray y por qué se utilizan?, incluyendo código C para convertir entre binario y BRGC.
- Dragos A. Harabor utiliza códigos Gray en un digitalizador 3D .
- Los códigos Gray de una sola pista, los códigos de cadena binarios ( Lancaster 1994 ) y los registros de desplazamiento con retroalimentación lineal son útiles para encontrar la posición absoluta de uno en un codificador rotatorio de una sola pista (u otro sensor de posición).
- Columna AMS: Códigos grises
- Generador de rueda con codificador óptico
- ProtoTalk.net – Comprensión de la codificación en cuadratura – Cubre la codificación en cuadratura con mayor detalle, centrándose en aplicaciones robóticas.
- Transmisión de datos
- Sistemas numéricos
- Aritmética binaria
- Sistemas de numeración posicional no estándar

