Código Lucal [1] [2] | |||||
---|---|---|---|---|---|
5 | 4 | 3 | 2 | 1 | |
Código gris | |||||
4 | 3 | 2 | 1 | ||
0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 1 |
2 | 0 | 0 | 1 | 1 | 0 |
3 | 0 | 0 | 1 | 0 | 1 |
4 | 0 | 1 | 1 | 0 | 0 |
5 | 0 | 1 | 1 | 1 | 1 |
6 | 0 | 1 | 0 | 1 | 0 |
7 | 0 | 1 | 0 | 0 | 1 |
8 | 1 | 1 | 0 | 0 | 0 |
9 | 1 | 1 | 0 | 1 | 1 |
10 | 1 | 1 | 1 | 1 | 0 |
11 | 1 | 1 | 1 | 0 | 1 |
12 | 1 | 0 | 1 | 0 | 0 |
13 | 1 | 0 | 1 | 1 | 1 |
14 | 1 | 0 | 0 | 1 | 0 |
15 | 1 | 0 | 0 | 0 | 1 |
El código binario reflejado ( RBC ), también conocido como código binario reflejado ( RB ) o código Gray después de Frank Gray , es una ordenación del sistema numérico binario de manera que dos valores sucesivos difieren en un solo bit (dígito binario).
Por ejemplo, la representación del valor decimal "1" en binario normalmente sería "001" y "2" sería "010". En el código Gray, estos valores se representan como "001" y "011". De esa manera, incrementar un valor de 1 a 2 solo requiere un bit para cambiar, en lugar de dos.
Los códigos grises se utilizan ampliamente para evitar la salida espuria de los interruptores electromecánicos y para facilitar la corrección de errores en las comunicaciones digitales, como la televisión digital terrestre y algunos sistemas de televisión por cable .
Motivación y nombre
Muchos dispositivos indican la posición cerrando y abriendo interruptores. Si ese dispositivo usa códigos binarios naturales , las posiciones 3 y 4 están una al lado de la otra, pero los tres bits de la representación binaria son diferentes:
Decimal | Binario |
---|---|
... | ... |
3 | 011 |
4 | 100 |
... | ... |
El problema con los códigos binarios naturales es que los interruptores físicos no son ideales: es muy poco probable que los interruptores físicos cambien de estado exactamente en sincronía. En la transición entre los dos estados mostrados arriba, los tres interruptores cambian de estado. En el breve período mientras todos están cambiando, los interruptores leerán alguna posición falsa. Incluso sin rebote de tecla , la transición puede parecer 011 - 001 - 101 - 100. Cuando los interruptores parecen estar en la posición 001, el observador no puede decir si esa es la posición "real" 001 o un estado de transición entre otras dos posiciones. Si la salida se alimenta a un sistema secuencial , posiblemente mediante lógica combinacional , entonces el sistema secuencial puede almacenar un valor falso.
Este problema se puede resolver cambiando solo un interruptor a la vez, por lo que nunca hay ambigüedad de posición, lo que resulta en códigos que asignan a cada uno de un conjunto contiguo de números enteros , oa cada miembro de una lista circular, una palabra de símbolos como que no hay dos palabras de código idénticas y que cada dos palabras de código adyacentes difieren exactamente en un símbolo. Estos códigos también se conocen como unidades de distancia , [3] [4] [5] [6] [7] de distancia única , de paso único , monostróficos [8] [9] [6] [7] o códigos sincópicos , [8] en referencia a la distancia de Hamming de 1 entre códigos adyacentes.
En principio, puede haber más de uno de estos códigos para una longitud de palabra determinada, pero el término código Gray se aplicó primero a un código binario particular para enteros no negativos, el código Gray reflejado en binario o BRGC . El investigador de Bell Labs , George R. Stibitz, describió dicho código en una solicitud de patente de 1941, concedida en 1943. [10] [11] [12] Frank Gray introdujo el término código binario reflejado en su solicitud de patente de 1947, y señaló que el código tenía " aún sin nombre reconocido ". [13] 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, el bit menos significativo sigue un patrón repetitivo de 2 on, 2 off (… 11001100…); el siguiente dígito un patrón de 4 activado, 4 desactivado; el n-ésimo bit menos significativo un patrón de en apagado. La versión de cuatro bits de esto se muestra a continuación:
Decimal | Binario | gris | Decimal gris |
---|---|---|---|
0 | 0000 | 0000 | 0 |
1 | 0001 | 0001 | 1 |
2 | 0010 | 0011 | 3 |
3 | 0011 | 0010 | 2 |
4 | 0100 | 0110 | 6 |
5 | 0101 | 0111 | 7 |
6 | 0110 | 0101 | 5 |
7 | 0111 | 0100 | 4 |
8 | 1000 | 1100 | 12 |
9 | 1001 | 1101 | 13 |
10 | 1010 | 1111 | 15 |
11 | 1011 | 1110 | 14 |
12 | 1100 | 1010 | 10 |
13 | 1101 | 1011 | 11 |
14 | 1110 | 1001 | 9 |
15 | 1111 | 1000 | 8 |
Para el decimal 15, el código pasa al decimal 0 con solo un cambio de interruptor. Esto se denomina propiedad cíclica o de adyacencia del código. [14]
En las comunicaciones digitales modernas , los códigos Gray juegan 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 4 bits o más, el diagrama de constelación de la señal está dispuesto de modo que los patrones de bits transmitidos por puntos de constelación adyacentes difieran solo en un bit. Combinando 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 cause 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 [10] [11] [12] antes que Gray, el código binario reflejado fue nombrado después de Gray por otros que lo usaron. Dos solicitudes de patente diferentes de 1953 utilizan "código Gray" como un nombre alternativo para el "código binario reflejado"; [15] [16] uno de esos también enumera "código de error mínimo" y "código de permutación cíclica" entre los nombres. [16] Una solicitud de patente de 1954 se refiere al "código gris de Bell Telephone". [17] Otros nombres incluyen "código binario cíclico", [11] "código de progresión cíclica", [18] [11] "binario de permutación cíclica" [19] o "binario permutado cíclico" (CPB). [20] [21]
El código Gray se atribuyó a veces, incorrectamente, [12] a Elisha Gray . [22] [23] [24]
Historia y aplicación práctica
Acertijos matemáticos
Los códigos binarios reflejados se aplicaron a los acertijos matemáticos antes de que los ingenieros los conocieran.
El código Gray reflejado en binario representa el esquema subyacente del rompecabezas de anillos chino clásico , un mecanismo de rompecabezas mecánico secuencial descrito por el francés Louis Gros en 1872. [25] [12]
Puede servir como una guía de solución para el problema de las Torres de Hanoi , basado en un juego del francés Édouard Lucas en 1883. [26] [27] [28] [29] De manera similar, las llamadas Torres de Bucarest y Torres de Klagenfurt Las configuraciones del juego producen códigos Gray ternarios y pentarios . [30]
Martin Gardner escribió un relato popular del código Gray en su columna Mathematical Games de agosto de 1972 en Scientific American . [31]
El código también forma un ciclo hamiltoniano en un hipercubo , donde cada bit se ve como una dimensión.
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 de impresión , 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 en su orden alfabético, [35] [36] [37] y otros símbolos colocados apropiadamente, el código de caracteres de 5 bits ha sido reconocido como un código binario reflejado. [12] Este código se conoció como código de Baudot [38] y, con cambios menores, fue finalmente adoptado como Alfabeto Telegráfico Internacional No. 1 (ITA1, CCITT-1) en 1932. [39] [40] [37]
Aproximadamente al mismo tiempo, el alemán-austríaco Otto Schäffler
[41] demostró otro telégrafo de impresión en Viena utilizando un código binario reflejado de 5 bits con el mismo propósito, en 1874. [42] [12]Conversión de señal analógica a digital
Frank Gray , quien se hizo famoso por inventar el método de señalización que llegó a usarse para la televisión en color compatible, inventó un método para convertir señales analógicas en grupos de códigos binarios reflejados utilizando aparatos basados en tubos de vacío . Archivado en 1947, el método y el aparato obtuvieron una patente en 1953, [13] y el nombre de Gray se adhirió a los códigos. El aparato de " tubo PCM " que Gray patentó fue fabricado por Raymond W. Sears de Bell Labs, en colaboración con Gray y William M. Goodall, quienes le dieron crédito a Gray por la idea del código binario reflejado. [43]
Gray estaba más interesado en usar los códigos para minimizar los errores al convertir señales analógicas en digitales; sus códigos todavía se utilizan hoy en día para este propósito.
Codificadores de posición
Los códigos grises se utilizan en codificadores de posición lineales y giratorios ( codificadores absolutos y codificadores de cuadratura ) con preferencia a la codificación binaria ponderada. Esto evita la posibilidad de que, cuando varios bits cambian en la representación binaria de una posición, se produzca una lectura errónea de algunos de los bits que cambian antes que otros.
Por ejemplo, algunos codificadores giratorios proporcionan un disco que tiene un patrón de código Gray conductor de electricidad en anillos concéntricos (pistas). Cada pista tiene un contacto de resorte metálico estacionario que proporciona contacto eléctrico al patrón de código conductor. Juntos, estos contactos producen señales de salida en forma de código Gray. Otros codificadores emplean mecanismos sin contacto basados en sensores ópticos o magnéticos para producir las señales de salida del código Gray.
Independientemente del mecanismo o la precisión de un codificador en movimiento, el error de medición de posición puede ocurrir en posiciones específicas (en los límites del código) porque el código puede estar cambiando en el momento exacto en que se lee (muestrea). Un código de salida binario podría causar errores de medición de posición significativos porque es imposible hacer que todos los bits cambien exactamente al mismo tiempo. Si, en el momento en que se muestrea la posición, 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 lejos de la posición real y, en el caso de los codificadores incrementales, esto puede dañar el seguimiento de la posición.
Por el contrario, el código Gray utilizado por los codificadores de posición asegura que los códigos para dos posiciones consecutivas cualesquiera difieran solo en un bit y, en consecuencia, solo un bit puede cambiar a la vez. En este caso, el error de posición máximo 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 de Gray, a veces se utilizan en algoritmos genéticos . [14] Son muy útiles en este campo, ya que las mutaciones en el código permiten cambios en su mayoría incrementales, pero ocasionalmente un solo cambio de bit puede causar un gran salto y conducir a nuevas propiedades.
Minimización del circuito booleano
Los códigos grises también se utilizan para etiquetar los ejes de los mapas de Karnaugh desde 1953 [44] [45] [46] así como en los gráficos circulares de Händler desde 1958, [47] [48] [49] [50] ambos métodos gráficos para lógica minimización del circuito .
Error de corrección
En las comunicaciones digitales modernas , los códigos Gray juegan 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 4 bits o más, el diagrama de constelación de la señal está dispuesto de modo que los patrones de bits transmitidos por puntos de constelación adyacentes difieran solo en un bit. Combinando 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 cause 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 .
Comunicación entre dominios de reloj
Los diseñadores de lógica digital utilizan ampliamente los códigos Gray para pasar información de conteo de múltiples bits entre la lógica síncrona que opera a diferentes frecuencias de reloj. Se considera que la lógica opera en diferentes "dominios de reloj". Es fundamental para el diseño de chips grandes que operan con muchas frecuencias de reloj diferentes.
Recorrer estados con un mínimo esfuerzo
Si un sistema tiene que recorrer todas las combinaciones posibles de estados de encendido y apagado de algún conjunto de controles, y los cambios de los controles requieren un gasto no trivial (por ejemplo, tiempo, desgaste, trabajo humano), un código Gray minimiza el número de ajustes. cambios a un solo cambio para cada combinación de estados. Un ejemplo sería probar un sistema de tuberías para todas las combinaciones de ajustes de sus válvulas operadas manualmente.
Se puede construir un código Gray equilibrado , [51] que cambia cada bit con la misma frecuencia. Dado que los cambios de bits se distribuyen uniformemente, esto es óptimo de la siguiente manera: los códigos Gray equilibrados minimizan el recuento máximo de cambios de bits para cada dígito.
Contadores de códigos grises y aritmética
George R. Stibitz ya utilizó un código binario reflejado en un dispositivo de conteo de pulsos binario en 1941. [10] [11] [12]
Un uso típico de los contadores de código Gray es construir un búfer de datos FIFO (primero en entrar , primero en salir) que tiene puertos de lectura y escritura que existen en diferentes dominios de reloj. Los contadores de entrada y salida dentro de un FIFO de doble puerto de este tipo a menudo se almacenan usando código Gray para evitar que se capturen estados transitorios no válidos cuando el conteo cruza los dominios del reloj. [52] Los punteros de lectura y escritura actualizados deben pasarse entre dominios de reloj cuando cambian, para poder rastrear el estado de FIFO vacío y completo en cada dominio. Cada bit de los punteros se muestrea de forma no determinista para esta transferencia de dominio de reloj. Entonces, para cada bit, se propaga el valor anterior o el nuevo. Por lo tanto, si más de un bit en el puntero de múltiples bits está cambiando en el punto de muestreo, se puede propagar un valor binario "incorrecto" (ni nuevo ni antiguo). Al garantizar que solo se puede cambiar un bit, los códigos Gray garantizan que los únicos valores muestreados posibles son el valor de múltiples bits nuevo o antiguo. Normalmente se utilizan códigos Gray de potencia de dos.
A veces, los buses digitales en los sistemas electrónicos se utilizan para transmitir cantidades que solo pueden aumentar o disminuir de una en una, por ejemplo, la salida de un contador de eventos que se pasa entre dominios de reloj o un convertidor de digital a analógico. La ventaja de los códigos Gray en estas aplicaciones es que las diferencias en los retrasos de propagación de los muchos cables que representan los bits del código no pueden hacer que el valor recibido pase por estados que están fuera de la secuencia del código Gray. Esto es similar a la ventaja de los códigos Gray en la construcción de codificadores mecánicos, sin embargo, la fuente del código Gray es un contador electrónico en este caso. El contador en sí debe contar en código Gray, o si el contador se ejecuta en binario, el valor de salida del contador debe volver a bloquearse después de que se haya convertido a código Gray, porque cuando un valor se convierte de binario a código Gray, [nb 1 ] es posible que las diferencias en los tiempos de llegada de los bits de datos binarios al circuito de conversión de binario a Gray signifiquen que el código podría pasar brevemente por estados que están muy fuera de secuencia. Agregar un registro cronometrado después del circuito que convierte el valor de conteo en código Gray puede introducir un ciclo de latencia de reloj, por lo que contar directamente en código Gray puede ser ventajoso. [53]
Para producir el siguiente valor de recuento en un contador de código Gray, es necesario tener alguna lógica combinatoria que incremente el valor de recuento actual que se almacena. Una forma de incrementar un número de código Gray es convertirlo en código binario ordinario, [54] agregarle uno con un sumador binario estándar y luego convertir el resultado de nuevo a código Gray. [55] En un informe de Robert W. Doran se analizan otros métodos de conteo en código Gray , que incluyen tomar la salida de los primeros pestillos de los flip flops maestro-esclavo en un contador de rizado binario. [56]
Direccionamiento de código gris
Dado que la ejecución del código del programa normalmente provoca un patrón de acceso a la memoria de instrucciones de direcciones localmente consecutivas, las codificaciones de bus que utilizan direccionamiento de código Gray en lugar de direccionamiento binario pueden reducir significativamente el número de cambios de estado de los bits de dirección, reduciendo así el consumo de energía de la CPU en algunos niveles bajos. -Diseños de potencia. [57] [58]
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 de forma recursiva a partir de la lista para n - 1 bits reflejando la lista (es decir, enumerando las entradas en orden inverso), anteponiendo las entradas en la lista original con un 0 binario, anteponiendo el entradas en la lista reflejada con un 1 binario, y luego concatenando la lista original con la lista invertida. [12] Por ejemplo, generando la lista n = 3 a partir de la lista n = 2:
Lista de 2 bits: | 00, 01, 11, 10 | |
Reflejado: | 10, 11, 01, 00 | |
Prefije las entradas antiguas con 0 : | 000, 001, 011, 010, | |
Prefije nuevas entradas con 1 : | 110, 111, 101, 100 | |
Concatenados: | 000, 001, 011, 010, | 110, 111, 101, 100 |
El código Gray de un bit es G 1 = (0, 1). Esto se puede pensar como construido de forma recursiva como arriba a partir de un código Gray de cero bits G 0 = ( Λ ) que consiste en una sola entrada de longitud cero. Este proceso iterativo de generar G n +1 a partir de G n aclara las siguientes propiedades del código reflectante estándar:
- G n es una permutación de los números 0,…, 2 n - 1. (Cada número aparece exactamente una vez en la lista).
- G n está incrustado como la primera mitad de G n +1 .
- Por 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 sobre el valor del código Gray reflectante de un número: G ( m ) = el m -ésimo código Gray reflectante, contando desde 0.
- Cada entrada en G n difiere solo en un bit de la entrada anterior. (La distancia de Hamming es 1.)
- La última entrada en G n difiere solo en un bit de la primera entrada. (El código es cíclico).
Estas características sugieren un método simple y rápido de traducir un valor binario en el código Gray correspondiente. Cada bit se invierte si el siguiente bit superior del valor de entrada se establece en uno. Esto se puede realizar en paralelo mediante una operación de bit-shift y exclusiva-u si están disponibles: el n- ésimo código Gray se obtiene calculando. Anteponer un 0 deja el orden de las palabras de código sin cambios, anteponer un 1 invierte el orden de las palabras de código. Si los bits en la posición de palabras de código se invierte, el orden de los bloques vecinos de las palabras de código se invierten. Por ejemplo, si el bit 0 se invierte en una secuencia de palabras de código de 3 bits, el orden de dos palabras de código vecinas se invierte
{000,001,010,011,100,101,110,111} → {001,000,011,010,101,100,111,110} (invertir bit 0)
Si el bit 1 está invertido, los bloques de 2 palabras de código cambian de orden:
{000,001,010,011,100,101,110,111} → {010,011,000,001,110,111,100,101} (invertir bit 1)
Si el bit 2 está invertido, los bloques de 4 palabras de código invierten el orden:
{000,001,010,011,100,101,110,111} → {100,101,110,111,000,001,010,011} (invertir bit 2)
Por lo tanto, ex-oring un poco en la posición con el bocado en la posición deja el orden de las palabras en clave intacto si , e invierte el orden de los bloques de palabras de código si . Ahora, esta es exactamente la misma operación que el método reflect-and-prefix 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. Asumiendo es el th bit codificado en Gray ( siendo el bit más significativo), y es el th bit codificado en binario ( siendo el bit más significativo), la traducción inversa se puede dar de forma recursiva: , y . Alternativamente, la decodificación de un código Gray en un número binario se puede describir como una suma de prefijo de los bits en el código Gray, donde cada operación de suma individual en la suma de prefijo se realiza módulo dos.
Para construir el código Gray reflejado en binario de forma iterativa, en el paso 0 comience con el , y al paso encontrar la posición de bit del 1 menos significativo en la representación binaria de y voltea el bit en esa posición en el código anterior para obtener el siguiente código . Las posiciones de bit comienzan 0, 1, 0, 2, 0, 1, 0, 3,…. [nb 2] Consulte buscar el primer conjunto para obtener algoritmos eficientes para calcular estos valores.
Conversión desde y hacia el código Gray
Las siguientes funciones en C convierten entre números binarios y sus códigos Gray asociados. Si bien puede parecer que la conversión de Gray a binario requiere que cada bit se maneje de uno en uno, existen algoritmos más rápidos. [59] [54] [nb 1]
typedef unsigned int uint ;// Esta función convierte un número binario sin firmar en código Gray binario reflejado. uint BinaryToGray ( uint num ) { return num ^ ( num >> 1 ); // El operador >> se desplaza a la derecha. El operador ^ es exclusivo o. }// Esta función convierte un número de código Gray binario reflejado en un número binario. uint GrayToBinary ( uint num ) { uint máscara = num ; while ( máscara ) { // Cada bit de código Gray es exclusivo con todos los bits más significativos. máscara >> = 1 ; num ^ = máscara ; } 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 paralelo. Las declaraciones de asignación pueden estar en cualquier orden. // // Esta función se puede adaptar para códigos Gray más largos agregando pasos.uint GrayToBinary32 ( uint 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, luego a (abcd) 2 ^ (00ab) 2 ^ (0abc) 2 ^ (000a ) 2.
Tipos especiales de códigos Gray
En la práctica, el "código Gray" casi siempre se refiere a un código Gray reflejado en binario (BRGC). Sin embargo, los matemáticos han descubierto otros tipos de códigos Gray. Al igual que los BRGC, cada uno consta de una lista de palabras, donde cada palabra difiere de la siguiente en solo un dígito (cada palabra tiene una distancia de Hamming de 1 desde la siguiente palabra).
n -ary código Gray
|
Hay muchos tipos especializados de códigos Gray distintos del código Gray reflejado en binario. Uno de esos tipos de código Gray es el código Gray n -ary , también conocido como código Gray no booleano . Como su nombre lo indica, este tipo de código Gray utiliza valores no booleanos en sus codificaciones.
Por ejemplo, un código Gray tripartito ( ternario ) usaría los valores {0, 1, 2}. [30] El código Gray ( n , k ) es el código Gray n -ary con k dígitos. [60] La secuencia de elementos en el código (3, 2) -Gray es: {00, 01, 02, 12, 11, 10, 20, 21, 22}. El código ( n , k ) -Gray se puede construir de forma recursiva, como BRGC, o se puede construir de forma iterativa . Se presenta (en C ) un algoritmo para generar iterativamente el código ( N , k ) -Gray :
// entradas: base, dígitos, valor // salida: Gray // Convertir un valor en un código Gray con la base y los dígitos dados. // La iteración a través de una secuencia de valores daría como resultado una secuencia // de códigos Gray en los que solo cambia un dígito a la vez. void toGray ( base sin firmar , dígitos sin firmar , valor sin firmar , [ dígitos ] grises sin firmar ) { baseN sin signo [ dígitos ]; // Almacena el número base-N ordinario, un dígito por entrada unsigned i ; // La variable de bucle // Coloca el número baseN normal en la matriz baseN. Para base 10, 109 // se almacenaría como [9,0,1] para ( i = 0 ; i < dígitos ; i ++ ) { baseN [ i ] = valor % base ; valor = valor / base ; } // Convierta el número baseN normal en el código Gray equivalente. Tenga en cuenta que // el bucle comienza en el dígito más significativo y desciende. desplazamiento sin signo = 0 ; while ( i - ) { // El dígito gris se desplaza hacia abajo por la suma de los // dígitos más altos . gris [ i ] = ( baseN [ i ] + desplazamiento ) % base ; shift = shift + base - gris [ i ]; // Restar de la base para que el desplazamiento sea positivo } } // EJEMPLOS // input: value = 1899, base = 10, digits = 4 // output: baseN [] = [9,9,8,1], gray [] = [0,1,7,1] // entrada: valor = 1900, base = 10, dígitos = 4 // salida: baseN [] = [0,0,9,1], gris [] = [0, 1,8,1]
Hay otros algoritmos de código Gray para los códigos ( n , k ) -Gray. El código ( n , k ) -Gray producido por el algoritmo anterior es siempre cíclico; algunos algoritmos, como el de Guan, [60] carecen de esta propiedad cuando k es impar. Por otro lado, aunque solo cambia un dígito a la vez con este método, puede cambiar al ajustar (pasando de n - 1 a 0). En el algoritmo de Guan, el recuento 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 se definen de forma única, porque una permutación de las columnas de dicho código también es un código Gray. El procedimiento anterior produce un código en el que cuanto menor es el significado de un dígito, más a menudo cambia, lo que lo hace similar a los métodos de conteo normales.
Consulte también Skew binary number system , una variante del sistema de números ternarios donde como máximo cambian 2 dígitos en cada incremento, ya que cada incremento se puede realizar con una operación de acarreo de un dígito como máximo .
Código gris equilibrado
Aunque el código Gray binario reflejado es útil en muchos escenarios, no es óptimo en ciertos casos debido a la falta de "uniformidad". [51] En los códigos Gray balanceados , el número de cambios en diferentes posiciones de coordenadas es lo más cercano posible. Para hacer esto más preciso, sea G un ciclo de Gray completo R -ary con secuencia de transición; los recuentos de transición ( espectro ) de G son la colección de números enteros definidos por
Un código Gray es uniforme o equilibrado uniformemente si sus recuentos de transición son todos iguales, en cuyo caso tenemospara todos k . Claramente, cuando, tales códigos existen solo si n es una potencia de 2. De lo contrario, si n no dividede manera uniforme, es posible construir códigos bien equilibrados donde cada recuento de transición es o . [51] Los códigos Gray también pueden equilibrarse exponencialmente si todos sus recuentos de transición son potencias de dos adyacentes, y tales códigos existen para cada potencia de dos. [61]
Por ejemplo, un código Gray equilibrado de 4 bits tiene 16 transiciones, que se pueden distribuir uniformemente entre las cuatro posiciones (cuatro transiciones por posición), lo que lo hace uniformemente equilibrado: [51]
0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 00 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1
mientras que un código Gray balanceado 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: [51]
1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 00 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 01 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 11 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1
Ahora mostraremos una construcción [62] e implementación [63] 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ígitosdado un código Gray G de n dígitos de tal manera que se conserve la propiedad equilibrada. Para hacer esto, consideramos particiones deen un número par L de bloques no vacíos de la forma
dónde , y ). Esta partición induce una-Dígito código Gray dado por
Si definimos las multiplicidades de transición para ser el número de veces que el dígito en la posición i cambia entre bloques consecutivos en una partición, luego, 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 es encontrar una partición adecuada de un código Gray equilibrado de n dígitos de modo que el código inducido por él permanezca equilibrado, pero para esto sólo importan las multiplicidades de transición; uniendo dos bloques consecutivos sobre un dígito transición y división de otro bloque en otro dígito La transición produce un código Gray diferente con exactamente el mismo espectro de transición. , por lo que se puede, por ejemplo, [61] designar el primer transiciones en el dígito como los que caen entre dos bloques. Se pueden encontrar códigos uniformes cuando y , y esta construcción también se puede extender al caso R -ary. [62]
Códigos Long Run Gray
Los códigos Long Run Gray maximizan la distancia entre cambios consecutivos de dígitos en la misma posición. Es decir, la longitud de ejecución mínima de cualquier bit permanece sin cambios durante el mayor tiempo posible. [ cita requerida ]
Códigos grises monotónicos
Los códigos monotónicos son útiles en la teoría de redes de interconexión, especialmente para minimizar la dilatación de matrices lineales de procesadores. [64] Si definimos el peso de una cadena binaria como el número de unos en la cadena, entonces, aunque claramente no podemos tener un código Gray con un peso estrictamente creciente, es posible que queramos aproximarnos a esto haciendo que el código se ejecute a través de dos pesos antes de llegar al siguiente.
Podemos formalizar el concepto de códigos Gray monótonos de la siguiente manera: considere la partición del hipercubo en niveles de vértices que tienen el mismo peso, es decir
por . Estos niveles satisfacen. Dejar ser el subgrafo de Inducido por , y deja ser los bordes en . Un código Gray monótono es entonces un camino hamiltoniano en tal que siempre que viene antes en 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 subtrayectos de forma recursiva de longitud tener bordes en . [64] Definimos, cuando sea o , y
de lo contrario. Aquí, es una permutación adecuadamente definida y se refiere a la trayectoria P con sus coordenadas permutadas por. Estos caminos dan lugar a dos códigos Gray monótonos de n dígitos y dada por
La elección de lo que asegura que estos códigos son realmente códigos Gray resulta ser . Los primeros valores de se muestran en la tabla siguiente.
j = 0 | j = 1 | j = 2 | j = 3 | |
---|---|---|---|---|
n = 1 | 0, 1 | |||
n = 2 | 00, 01 | 10, 11 | ||
n = 3 | 000, 001 | 100, 110, 010, 011 | 101, 111 | |
n = 4 | 0000, 0001 | 1000, 1100, 0100, 0110, 0010, 0011 | 1010, 1011, 1001, 1101, 0101, 0111 | 1110, 1111 |
Estos códigos Gray monótonos se pueden implementar de manera eficiente de tal manera que cada elemento subsiguiente se pueda generar en O ( n ) tiempo. El algoritmo se describe más fácilmente mediante corrutinas .
Los códigos monotónicos tienen una conexión interesante con la conjetura de Lovász , que establece que cada gráfico transitivo de vértice conectado contiene un camino hamiltoniano. El subgrafo de "nivel medio"es vértice-transitivo (es decir, su grupo de automorfismos es transitivo, por lo que cada vértice tiene el mismo "entorno local" "y no se puede diferenciar de los demás, ya que podemos volver a etiquetar las coordenadas así como los dígitos binarios para obtener un automorfismo ) y el problema de encontrar un camino hamiltoniano en este subgrafo se llama el "problema de niveles medios", que puede proporcionar información sobre la conjetura más general. La pregunta ha sido respondida afirmativamente por, y la construcción anterior para códigos monótonos asegura una trayectoria hamiltoniana de longitud de al menos 0,839 N donde N es el número de vértices en el subgrafo de nivel medio. [sesenta y cinco]
Código Beckett – Gray
Otro tipo de código Gray, el código Beckett-Gray , lleva el nombre del dramaturgo irlandés Samuel Beckett , que estaba interesado en la simetría . Su obra " Quad " cuenta con cuatro actores y se divide 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 con un escenario vacío y Beckett quería que cada subconjunto de actores apareciera en el escenario exactamente una vez. [66] Claramente, el conjunto de actores que se encuentran actualmente en el escenario puede representarse mediante un código Gray binario de 4 bits. Beckett, sin embargo, impuso una restricción adicional al guión: deseaba que los actores entraran y salieran para que el actor que había estado más tiempo en el escenario fuera siempre el que saliera. Luego, los actores podrían ser representados por una cola de primeros en entrar , primero en salir , de modo que (de los actores en el escenario) el actor que se retira de la cola es siempre el que se coloca primero en la cola . [66] 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 existen para n = 2, 5, 6, 7 y 8, y no existen para n = 3 o 4. Se puede encontrar un ejemplo de un código Beckett-Gray de 8 bits en El arte de la programación informática de Donald Knuth . [12] Según Sawada y Wong, el espacio de búsqueda para n = 6 se puede explorar en 15 horas, y se han encontrado más de 9.500 soluciones para el caso n = 7. [67]
Códigos Snake-in-the-box
Los códigos de serpiente en la caja , o serpientes , son las secuencias de nodos de caminos inducidos en un gráfico de hipercubo n- dimensional , y los códigos de bobina en la caja, [68] o bobinas , son las secuencias de nodos de ciclos inducidos en un hipercubo. Consideradas como códigos Gray, estas secuencias tienen la propiedad de poder detectar cualquier error de codificación de un solo bit. Los códigos de este tipo fueron descritos por primera vez por William H. Kautz a finales de la década de 1950; [4] desde entonces, ha habido mucha investigación sobre cómo encontrar el código con el mayor número posible de palabras de código para una dimensión de hipercubo dada.
Código Gray de pista única
Otro tipo de código Gray es el código Gray de una sola pista (STGC) desarrollado por Norman B. Spedding [69] [70] y refinado por Hiltgen, Paterson y Brandestini en "Códigos Gray de una sola pista" (1996). [71] [72] El STGC es una lista cíclica de P codificaciones binarias únicas de longitud n tal que dos palabras consecutivas difieren exactamente en una posición, y cuando la lista se examina como una matriz P × n , cada columna es un desplazamiento cíclico de la primera columna. [73]
El nombre proviene de su uso con codificadores rotativos , donde un número de pistas son detectadas por contactos, resultando para cada una en una salida de 0 o 1. Para reducir el ruido debido a que los diferentes contactos no cambian exactamente en el mismo momento en el tiempo, uno Preferiblemente configura las pistas para que los datos emitidos por los contactos estén en código Gray. Para obtener una alta precisión angular, se necesitan muchos contactos; Para lograr al menos 1 grado de precisión, se necesitan al menos 360 posiciones distintas por revolución, lo que requiere un mínimo de 9 bits de datos y, por lo tanto, el mismo número de contactos.
Si todos los contactos se colocan en la misma posición angular, entonces se necesitan 9 pistas para obtener un BRGC estándar con al menos 1 grado de precisión. Sin embargo, si el fabricante mueve un contacto a una posición angular diferente (pero a la misma distancia del eje central), entonces el "patrón de anillo" correspondiente debe rotarse en el mismo ángulo para obtener la misma salida. Si la broca más significativa (el anillo interior en la Figura 1) se gira lo suficiente, coincide exactamente con el siguiente anillo. Dado que ambos anillos son entonces idénticos, el anillo interior se puede cortar y el sensor de ese anillo se puede mover al anillo idéntico restante (pero desplazado en ese ángulo del otro sensor en ese anillo). Esos dos sensores en un solo anillo forman un codificador en cuadratura. Eso reduce el número de pistas para un codificador angular de "resolución de 1 grado" a 8 pistas. Con BRGC no se puede reducir aún más el número de pistas.
Durante muchos años, Torsten Sillke [74] y otros matemáticos creyeron que era imposible codificar la posición en una sola pista de modo que las posiciones consecutivas difirieran en un solo sensor, excepto en el codificador de cuadratura de 2 sensores y 1 pista. Entonces, para aplicaciones donde 8 pistas eran demasiado voluminosas, la gente usaba codificadores incrementales de una sola pista (codificadores de cuadratura) o codificadores de 2 pistas "codificador de cuadratura + muesca de referencia".
Norman B. Spedding, sin embargo, registró una patente en 1994 con varios ejemplos que demostraban que era posible. [69] Aunque no es posible distinguir 2 n posiciones con n sensores en una sola pista, es posible distinguir cerca de esa cantidad. Etzion y Paterson conjeturan que cuando n es en sí mismo una potencia de 2, n sensores pueden distinguir como máximo 2 n - 2 n posiciones y que para el primo n el límite es 2 n - 2 posiciones. [75] Los autores continuaron generando un código de pista única de posición 504 de longitud 9 que creen que es óptimo. Dado que este número es mayor que 2 8 = 256, cualquier código requiere más de 8 sensores, aunque un BRGC podría distinguir 512 posiciones con 9 sensores.
Aquí se reproduce un STGC para P = 30 yn = 5:
Ángulo | Código | Ángulo | Código | Ángulo | Código | Ángulo | Código | Ángulo | Código | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 ° | 10000 | 72 ° | 01000 | 144 ° | 00100 | 216 ° | 00010 | 288 ° | 00001 | ||||
12 ° | 10100 | 84 ° | 01010 | 156 ° | 00101 | 228 ° | 10010 | 300 ° | 01001 | ||||
24 ° | 11100 | 96 ° | 01110 | 168 ° | 00111 | 240 ° | 10011 | 312 ° | 11001 | ||||
36 ° | 11110 | 108 ° | 01111 | 180 ° | 10111 | 252 ° | 11011 | 324 ° | 11101 | ||||
48 ° | 11010 | 120 ° | 01101 | 192 ° | 10110 | 264 ° | 01011 | 336 ° | 10101 | ||||
60 ° | 11000 | 132 ° | 01100 | 204 ° | 00110 | 276 ° | 00011 | 348 ° | 10001 |
Cada columna es un desplazamiento cíclico de la primera columna, y de cualquier fila a la siguiente sólo cambia un bit. [76] La naturaleza de una sola pista (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 en 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 solo será más o menos una unidad de ángulo medición que el dispositivo es capaz de resolver. [77]
Código Gray bidimensional
Los códigos Gray bidimensionales se utilizan en la comunicación para minimizar el número de errores de bits en los puntos adyacentes de la modulación de amplitud en cuadratura (QAM) en la constelación . En una codificación típica, los puntos de constelación adyacentes horizontales y verticales difieren en un solo bit, y los puntos adyacentes diagonales difieren en 2 bits. [78]
Los códigos Gray bidimensionales también tienen usos en esquemas de identificación de ubicación , donde el código se aplicaría a mapas de área como una proyección de Mercator de la superficie de la tierra y una función de distancia bidimensional cíclica apropiada como la métrica de Mannheim se usaría para calcular el distancia entre dos ubicaciones codificadas, combinando así las características de la distancia de Hamming con la continuación cíclica de una proyección de Mercator. [79]
Isometría gris
El mapeo biyectivo {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 habitual ) con la métrica dada por la distancia de Lee . El mapeo se extiende adecuadamente a una isometría de los espacios de Hamming. y . Su importancia radica en establecer una correspondencia entre varios códigos "buenos" pero no necesariamente lineales como imágenes del mapa de grises ende códigos de anillo lineal de. [80] [81]
Códigos relacionados
Hay una serie de códigos binarios similares a los códigos Gray, que incluyen:
- Los códigos Datex también conocidos como códigos Giannini (1954), como los describe Carl P. Spaulding, [8] [82] [83] [84] [85] [7] usan una variante del código II de O'Brien .
- Los códigos utilizados por Varec (ca. 1954), [86] [87] [88] [89] utilizan una variante del código I de O'Brien , así como variantes del código Gray en base 12 y base 16.
- Código Lucal (1959) [1] [2] [56] también conocido como código binario reflejado modificado (MRB) [1] [2] [nb 3]
- El código Gillham (1961/1962), [83] [90] [7] [91] [92] utiliza una variante del código Datex y el código II de O'Brien .
- Código de Leslie y Russell (1964) [93] [9] [94] [90]
- Código de establecimiento de radar real [90]
- Código Hoklas (1988) [95] [96] [97]
Los siguientes códigos decimales codificados en binario (BCD) también son variantes de código Gray:
- Código Petherick (1953), [18] [98] [99] [100] [54] [96] [nb 4] también conocido como código Royal Aircraft Establishment (RAE). [101]
- Códigos O'Brien I y II (1955) [102] [103] [104] [84] [85] [96] (Un código O'Brien tipo I [nb 5] ya fue descrito por Frederic A. Foss de IBM [105] [106] y utilizado por Varec en 1954. Más tarde, también se conoció como código Watts o código decimal reflejado Watts (WRD) ya veces se lo denomina ambiguamente como código Gray modificado binario reflejado. [107] [19] [20] [108] [109] [110] [111] [112] [113] [nb 1] [nb 3] Datex ya utilizaba un código O'Brien tipo II en 1954. [nb 4] )
- Exceso-3 código Gray (1956) [114] (también conocido como código Gray exceso-3 , [84] [85] [7] Código gris exceso 3, código reflejo exceso 3, código Gray exceso, [96] Código gris exceso , Código Gray 10-exceso-3 o código Gray-Stibitz), descrito por Frank P. Turvey Jr. de ITT . [114]
- Tompkins códigos I y II (1956) [3] [103] [104] [84] [85] [96]
- Código Glixon (1957), a veces también llamado ambiguamente código Gray modificado [115] [54] [116] [117] [103] [104] [84] [85] [96] [nb 3] [nb 5]
Nombre | Un poco | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Pesos [nb 7] | Pistas | Compl. | Cíclico | 5 s | Comentario |
BCD gris | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0..3 | 4 (3 [nb 8] ) | - | (2, 4, 8, 16) | - | [103] [104] |
3 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||
2 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | |||||||
1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | |||||||
Paul | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1..3 | 4 (3 [nb 8] ) | - | 2, 10 | - | [118] |
3 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||
2 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | |||||||
1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | |||||||
Glixon | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0..3 | 4 | - | 2, 4, 8, 10 | (desplazado +1) | [115] [103] [104] [116] [117] [nb 5] |
3 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | |||||||
2 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | |||||||
1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | |||||||
Tompkins I | 4 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0..4 | 2 | - | 2, 4, 10 | + | [3] [103] [104] |
3 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | |||||||
2 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | |||||||
1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | |||||||
O'Brien I (vatios) | 4 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0..3 | 4 | 9 [96] [97] [nb 9] | 2, 4, 10 | + | [102] [103] [104] [nb 5] |
3 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | |||||||
2 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | |||||||
1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | |||||||
Petherick (RAE) | 4 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1..3 | 3 | 9 [96] [97] [nb 9] | 2, 10 | + | [18] [100] [nb 4] |
3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | |||||||
2 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | |||||||
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | |||||||
O'Brien II | 4 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1..3 | 3 | 9 [84] [96] [97] [nb 9] | 2, 10 | + | [102] [103] [104] [nb 4] |
3 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | |||||||
2 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | |||||||
1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | |||||||
Susskind | 4 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1..4 | 3 | 9 [nb 9] | 2, 10 | + | [5] |
3 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | |||||||
2 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | |||||||
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | |||||||
Klar | 4 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0..4 | 4 (3 [nb 8] ) | 9 [nb 9] | 2, 10 | + | [119] [120] |
3 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | |||||||
2 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | |||||||
1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | |||||||
Tompkins II | 4 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1..3 | 2 | 9 [nb 10] | 2, 10 | + | [3] [103] [104] |
3 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | |||||||
2 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | |||||||
1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | |||||||
Exceso-3 Gris | 4 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1..4 | 4 | 9 [96] [97] [nb 9] | 2, 10 | + | [7] [96] |
3 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | |||||||
2 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | |||||||
1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
Ver también
- Registro de desplazamiento de retroalimentación lineal
- Secuencia de De Bruijn : un código Gray en un alfabeto mayor que {0,1 }.
- Algoritmo Steinhaus – Johnson – Trotter : un algoritmo que genera códigos Gray para el sistema numérico factorial
- Código de distancia mínima
- Secuencia Prouhet-Thue-Morse : relacionada con el código Gray inverso
- Fórmula de Ryser
- Curva de Hilbert
Notas
- ^ a b c Al aplicar una regla de inversión simple , el código Gray y el código O'Brien I pueden traducirse 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 la OEIS ).
- ^ a b c Hay varias variantes del código Gray que se denominan "modificado" 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 I de O'Brien o el código Watts a veces se denomina código Gray modificado binario reflejado. [F]
- ^ a b c d Al intercambiar e invertir tres filas de bits, el código II de O'Brien y el código Petherick se pueden transferir entre sí.
- ^ a b c d Intercambiando dos pares de filas de bits, cambiando individualmente cuatro filas de bits e invirtiendo una de ellas, el código Glixon y el código O'Brien I pueden transferirse entre sí.
- ^ Otros códigos BCD de distancia unitaria incluyen el Libaw-Craig de 5 bits no relacionado con el código Grayy el código 1-2-1 .
- ^ Dependiendo de la aplicación de destino de un código, los pesos de Hamming de un código pueden ser propiedades importantes más allá de las consideraciones teóricas de codificación también por razones físicas. En algunas circunstancias, se deben omitir los estados de borrado total y / o armado total (por ejemplo, para evitar condiciones no conductoras o de cortocircuito), puede ser deseable mantener el mayor peso usado lo más bajo posible (por ejemplo, para reducir la potencia). consumo del circuito del lector) o para mantener pequeña la variación de los pesos usados (por ejemplo, para reducir el ruido acústico o las fluctuaciones de corriente).
- ^ a b c Para los códigos Gray BCD , Paul y Klar , el número de pistas de lectura necesarias se puede reducir de 4 a 3 si la inversión de una de las pistas intermedias es aceptable.
- ^ Un b c d e f Para códigos O'Brien I y II y Petherick , Susskind , Klar , así como exceso 3 códigos de Gray , un 9s del complemento se puede derivar invirtiendo el más significativo (cuarto) dígito binario.
- ^ Para el código II de Tompkins ,se puede derivarun complemento de 9 invirtiendo los primeros tres dígitos e intercambiando los dos dígitos binarios del medio.
Referencias
- ↑ a b c Lucal, Harold M. (diciembre de 1959). "Operaciones aritméticas para computadoras digitales usando un binario reflejado modificado" . Transacciones IRE en computadoras electrónicas . EC-8 (4): 449–458. doi : 10.1109 / TEC.1959.5222057 . ISSN 0367-9950 . S2CID 206673385 . (10 páginas)
- ^ a b c Sellers, Jr., Frederick F .; Hsiao, Mu-Yue; Bearnson, Leroy W. (noviembre de 1968). Lógica de detección de errores para computadoras digitales (1ª ed.). Nueva York, Estados Unidos: McGraw-Hill Book Company . págs. 152-164. LCCN 68-16491 . OCLC 439460 .
- ^ a b c d Tompkins, Howard E. (septiembre de 1956) [16 de julio de 1956]. "Códigos binario-decimal de unidad de distancia para conmutación de dos pistas" . Transacciones IRE en computadoras electrónicas . Correspondencia. Escuela de Ingeniería Eléctrica Moore , Universidad de Pensilvania , Filadelfia, Pensilvania, EE. UU. EC-5 (3): 139. doi : 10.1109 / TEC.1956.5219934 . ISSN 0367-9950 . Consultado el 18 de mayo de 2020 . (1 pagina)
- ^ a b Kautz, William H. (junio de 1958). "Códigos de comprobación de errores de distancia unitaria". Transacciones IRE en computadoras electrónicas . EC-7 (2): 179–180. doi : 10.1109 / TEC.1958.5222529 . ISSN 0367-9950 . S2CID 26649532 . (2 páginas)
- ^ a b Susskind, Alfred Kriss; Ward, John Erwin (28 de marzo de 1958) [1957, 1956]. "III.F. Códigos Unidad-Distancia / VI.E.2. Códigos Binarios Reflejados". Escrito en Cambridge, Massachusetts, EE. UU. En Susskind, Alfred Kriss (ed.). Notas sobre técnicas de conversión analógico-digital . Libros de tecnología en ciencia e ingeniería. 1 (3 ed.). Nueva York, EE. UU.: Technology Press del Instituto de Tecnología de Massachusetts / John Wiley & Sons, Inc. / Chapman & Hall, Ltd. págs. 3-10–3-16 [3-13–3-16], 6-65 –6-60 [6-60].(x + 416 + 2 páginas) (NB. El contenido del libro fue preparado originalmente por miembros del personal del Laboratorio de Servomecanismos , Departamento de Ingeniería Eléctrica, MIT , para los Programas Especiales de Verano celebrados en 1956 y 1957. Código de tipo 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, al intercambiar dos filas de bits e invertir una de ellas, el código se puede transferir al código Petherick , mientras que al intercambiar e invirtiendo dos filas de bits, el código se puede transferir al código II de O'Brien ).
- ^ a b Chinal, Jean P. (enero de 1973). "3.3. Códigos de unidad de distancia". Escrito en París, Francia. Métodos de diseño de sistemas digitales . Traducido por Preston, Alan; Summer, Arthur (1ª ed. En inglés). Berlín, Alemania: Akademie-Verlag / Springer-Verlag . pag. 50. doi : 10.1007 / 978-3-642-86187-1 . ISBN 978-0-387-05871-9. Licencia No. 202-100 / 542/73. Referencia 7617470 (6047) ES 19 B 1/20 K 3 . Consultado el 21 de junio de 2020 .(xviii + 506 páginas) (NB. El libro original francés de 1967 se llamó "Techniques Booléennes et Calculateurs Arithmétiques", publicado por Éditions Dunod .)
- ^ a b c d e f Manual militar: codificadores: ángulo del eje a digital (PDF) . Departamento de Defensa de Estados Unidos . 1991-09-30. MIL-HDBK-231A. Archivado (PDF) desde el original el 25 de julio de 2020 . Consultado el 25 de julio de 2020 . (NB. Reemplaza MIL-HDBK-231 (AS) (1970-07-01).)
- ^ a b c Spaulding, Carl P. (12 de enero de 1965) [9 de marzo de 1954]. "Sistema de codificación y traducción digital" (PDF) . Monrovia, California, Estados Unidos: Datex Corporation. Patente de Estados Unidos 3165731A . Número de serie 415058. Archivado (PDF) desde el original el 5 de agosto de 2020 . Consultado el 21 de enero de 2018 . (28 páginas)
- ^ a b Russell, A. (agosto de 1964). "Algunos códigos binarios y un nuevo código de cinco canales" . Control (Sistemas, Instrumentación, Procesamiento de Datos, Automatización, Gestión, incorporando Automatización Progreso) . Características especiales. Londres, Reino Unido: Morgan-Grampain (Publishers) Limited. 8 (74): 399–404 . Consultado el 22 de junio de 2020 . (6 páginas)
- ^ a b c Stibitz, George Robert (12 de enero de 1943) [26 de noviembre de 1941]. "Contador binario" . Nueva York, Estados Unidos: Bell Telephone Laboratories, Incorporated . Patente de Estados Unidos 2.307.868 . Número de serie 420537 . Consultado el 24 de mayo de 2020 . pag. 2, columna derecha, filas 43–73:
[…] Se
obtendráuna idea más clara de la posición de las bolas después de cada pulso si el conjunto de bolas está representado por un número que tenga un número similar de dígitos, cada uno de los cuales puede tener uno de dos valores arbitrarios, por ejemplo 0 y 1. Si la posición superior se llama 0 y la posición inferior […] 1, entonces el ajuste del contador […] puede leerse de izquierda a derecha como 0,100,000. […] A continuación se muestra una traducción del número de pulsos recibidos en esta forma de notación binaria para los primeros dieciséis pulsos recibidos en las primeras cinco bolas […] Número de pulso […] Notación binaria […]
[1] (4 páginas) - ^ a b c d e Winder, C. Farrell (octubre de 1959). "Los codificadores de ángulo de eje ofrecen alta precisión" (PDF) . Industrias electrónicas . Compañía Chilton . 18 (10): 76–80. Archivado desde el original (PDF) el 28 de septiembre de 2020 . Consultado el 14 de enero de 2018 . pag. 78:
[…] El tipo de rueda de código más popular en los codificadores ópticos contiene un patrón de código binario cíclico diseñado para dar una secuencia cíclica de salidas "on-off". El código binario cíclico también se conoce como código de progresión cíclica, código binario reflejado y código Gray. Este código fue creado por GR Stibitz , de Bell Telephone Laboratories , y fue propuesto por primera vez para sistemas de modulación de pulso-código por Frank Gray , también de BTL. De ahí el nombre del código Gray. El código Gray o cíclico se utiliza principalmente para eliminar la posibilidad de errores en la transición del código que podrían resultar en grandes ambigüedades. […]
- ^ a b c d e f g h yo 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 . 4A (1 ed.). Addison-Wesley Professional . págs. 442–443. ISBN 978-0-13348885-2. ISBN 0-13348885-3 . (912 páginas)
- ^ a b Gray, Frank (17 de marzo de 1953) [13 de noviembre de 1947]. Comunicación de código de pulso (PDF) . Nueva York, Estados Unidos: Bell Telephone Laboratories, Incorporated . Patente de Estados Unidos 2.632.058 . Número de serie 785697. Archivado (PDF) desde el original el 5 de agosto de 2020 . Consultado el 5 de agosto de 2020 . (13 páginas)
- ^ a b Goldberg, David Edward (1989). Algoritmos genéticos en búsqueda, optimización y aprendizaje automático (1 ed.). Reading, Massachusetts, Estados Unidos: Addison-Wesley .
- ^ 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 de Estados Unidos 2.733.432 . Número de serie 401738. Archivado (PDF) desde el original el 5 de agosto de 2020 . Consultado el 5 de agosto de 2020 . (8 páginas)
- ^ a b Ragland, Earl Albert; Schultheis, Jr., Harry B. (11 de febrero de 1958) [16 de octubre de 1953]. Sistema de control de posición de código binario sensible a la dirección (PDF) . North Hollywood, California, Estados Unidos: Bendix Aviation Corporation. Patente de Estados Unidos 2.823.345 . Número de serie 386524. Archivado (PDF) desde el original el 5 de agosto de 2020 . Consultado el 5 de agosto de 2020 . (10 páginas)
- ^ Domeshek, Sol; Reiner, Stewart (24 de junio de 1958) [8 de enero de 1954]. Sistema de rectificación automática (PDF) . Secretario de Marina de los Estados Unidos . Patente de Estados Unidos 2.839.974 . Número de serie 403085. Archivado (PDF) desde el original el 5 de agosto de 2020 . Consultado el 5 de agosto de 2020 . (8 páginas)
- ^ a b c Petherick, Edward John (octubre de 1953). Un sistema cíclico progresivo decimal codificado en binario de representación de números (nota técnica MS15). Farnborough, Reino Unido: Royal Aircraft Establishment (RAE).(4 páginas) (NB. A veces se lo conoce como un sistema decimal codificado en binario codificado cíclico para representar números ).
- ^ a b Evans, David Silvester (1960). Fundamentos de la instrumentación digital (1 ed.). Londres, Reino Unido: Hilger y Watts Ltd . Consultado el 24 de mayo de 2020 . (39 páginas)
- ^ a b Evans, David Silvester (marzo de 1961). "Capítulo tres: lectura directa de escalas codificadas". Datos digitales: su derivación y reducción para análisis y control de procesos (1 ed.). Londres, Reino Unido: Hilger & Watts Ltd / Interscience Publishers . págs. 18-23 . Consultado el 24 de mayo de 2020 . pag. 20-23:
[…] Decodificación. […] Para decodificar códigos CPB o WRD , se puede aplicar una 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 de cambio más lento o superior del CPB, si el resultado es impar (1), el valor de la siguiente pista debe invertirse, es decir, 0 para 1 y 1 para 0. Sin embargo, si la primera pista es par (0 ), la segunda pista se deja como leída, es decir, 0 para 0 y 1 para 1. Nuevamente, si la lectura resultante de la segunda pista es impar, la lectura de la tercera pista se invierte y así sucesivamente. Cuando un impar se cambia a un par, la línea de abajo no se invierte y cuando un par se cambia a un impar, la línea de abajo se invierte. El resultado de aplicar esta regla al patrón […] es el patrón binario puro (PB) […] donde a cada pista o dígito se le puede dar un valor numérico definido (en este caso 1, 2, 4, 8, etc.) . […] El uso de la regla de inversión línea por línea en el código WRD produce [un] patrón [de código 1, 2, 4, 2 ] donde nuevamente los dígitos pueden recibir valores numéricos y sumar 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 en paralelo […], es habitual tratar a cada cuarteto binario o década como una entidad. En otras palabras, si la primera década o la más significativa es impar, la segunda década se rectifica o complementa invirtiendo la pista D y así sucesivamente, el resultado es el patrón repetido de [código WRD rectificado]. Esto es algo extremadamente fácil de lograr ya que el único cambio requerido es la inversión del significado de la pista D o el dígito complementario. […]
(8 + 82 páginas) (NB. El autor no menciona Gray en absoluto y llama al código Gray estándar "Código Binario Permutado Cíclico" (CPB), el índice del libro lo enumera erróneamente como "código binario puro cíclico".) - ^ 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: HM Stationery Office . Consultado el 24 de mayo de 2020 . (12 páginas)
- ^ Heath, FG (septiembre de 1961). "Pioneros de la codificación binaria" . Revista de la Institución de Ingenieros Eléctricos . Manchester College of Science and Technology , Facultad de Tecnología de la Universidad de Manchester , Manchester, Reino Unido: Institución de Ingeniería y Tecnología (IET). 7 (81): 539–541. doi : 10.1049 / jiee-3.1961.0300 . Consultado el 22 de junio de 2020 . (3 páginas)
- ^ Cattermole, Kenneth W. (1969). Escrito en Harlow, Essex, Reino Unido. Principios de la modulación de código de impulsos (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-4. LCCN 78-80432 . SBN 444-19747-8. pag. 245:
[…] Parece haber cierta confusión sobre la atribución de este código, porque dos inventores llamados Gray se han asociado con él. Cuando escuché el nombre por primera vez, lo tomé como una referencia a Elisha Gray , y Heath testifica de su uso. Mucha gente lo toma como una referencia a Frank Gray de Bell Telephone Laboratories , quien en 1947 propuso por primera vez su uso en la codificación de tubos : su patente figura en la bibliografía. […]
(2 + 448 + 2 páginas) - ^ Edwards, Anthony William Fairbank (2004). Ruedas dentadas 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. ISBN 978-0-8018-7434-5 .
- ^ 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 17 de diciembre de 2020 . Consultado el 17 de diciembre de 2020 . [2] (2 + 16 + 4 páginas y 4 páginas desplegables) (NB. Este folleto se publicó de forma anónima, pero se sabe que fue escrito por Louis Gros).
- ^ Lucas, Édouard (noviembre de 1883). La tour d'Hanoï: Véritable casse tête annamite - Jeu rapporté du Tonkin par le Professeur N. Claus (de Siam) Mandarin du Collège Li Sou Stian! (en francés). Imprimerie Paul Bousrez, Tours.(NB. N. Claus de Siam es un anagrama de Lucas d'Amiens, seudónimo del autor Édouard Lucas ).
- ^ de Parville, Henri , 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 effet, mais intéressant. 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 patientes possédées par le démon du jeu " . Journal des Débats Politiques et Littéraires (Revisión). Revue des science (en francés) (Matin ed.). París, Francia: 1-2 [2]. arca: / 12148 / bpt6k462461g. Archivado desde el original el 18 de diciembre de 2020 . Consultado el 18 de diciembre de 2020 . (1 pagina)
- ^ Allardice, Robert Edgar ; Fraser, Alexander Yule , eds. (Febrero de 1883). "La Tour d'Hanoï" . Actas de la Edinburgh Mathematical Society (en inglés y francés). Sociedad Matemática de Edimburgo . 2 (5): 50–53. doi : 10.1017 / S0013091500037147 . eISSN 1464-3839 . ISSN 0013-0915 . Archivado desde el original el 18 de diciembre de 2020 . Consultado el 18 de diciembre de 2020 . [3] (4 páginas)
- ^ Lucas, Édouard (1979) [1892]. Récréations mathématiques (en francés). 3 (Librairie Albert Blanchard reedición ed.). pag. 58. (La primera edición de este libro se publicó de manera posthumana).
- ^ a b Herter, Felix; Rote, Günter (2018-11-14) [2018-08-09, 2017-12, 2017-08-09, 2016-04-22]. "Enumeración de código gris sin bucles y la torre de Bucarest" (PDF) . Informática Teórica . Berlín, Alemania: Institut für Informatik, Freie Universität Berlin . 748 : 40–54. arXiv : 1604.06707 . doi : 10.1016 / j.tcs.2017.11.017 . ISSN 0304-3975 . S2CID 4014870 . ‹Ver Tfd› doi : 10.4230 / LIPIcs.FUN.2016.19 . Archivado (PDF) desde el original el 16 de diciembre de 2020 . Consultado el 16 de diciembre de 2020 . [4] (15/18/19/24 páginas)
- ^ 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 no. 2. p. 106. (1 pagina)
- ^ Zeman, Johann; Fischer, Ferdinand, eds. (1877). "Einige neuere Vorschläge zur mehrfachen Telegraphie: A. Absatzweise vielfache Telegraphie" . Polytechnisches Journal de Dingler (en alemán). Augsburgo, Alemania: JG Cotta'sche Buchhandlung . 226 : 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 patentei [e] rten Weiterentwicklung in einchen fünchen fumgewanf ]
- ^ Butrica, Andrew J. (21 de junio de 1991). "Baudot, Jean Maurice Emile". En Froehlich, Fritz E .; Kent, Allen ; Hall, Carolyn M. (eds.). La Enciclopedia de Telecomunicaciones de Froehlich / Kent: Volumen 2 - Baterías a Códigos-Telecomunicaciones . 2 . Marcel Dekker Inc. / CRC Press . págs. 31–34. ISBN 0-8247-2901-3. LCCN 90-3966 . ISBN 978-0-8247-2901-1 . Consultado el 20 de diciembre de 2020 . pag. 31:
[…] Un prototipo de Baudot (4 años en fabricación) fue construido en 1876. El transmisor tenía 5 teclas similares a las de un piano. Los mensajes se enviaron en un código especial de 5 elementos ideado por Baudot […]
- ^ Fischer, Eric N. (20 de junio de 2000). "La evolución de los códigos de caracteres, 1874-1968" . arca: / 13960 / t07x23w8s . Consultado el 20 de diciembre de 2020 .
[…] En 1872, [Baudot] inició la investigación hacia un sistema de telégrafo que permitiera a múltiples operadores transmitir simultáneamente a través de un solo cable y, a medida que se recibían las transmisiones, las imprimí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 usó seis unidades de tiempo uniformes para transmitir cada carácter. […] Su primer telégrafo probablemente usó el código de seis unidades […] que atribuye a Davy en un artículo de 1877. […] En 1876 Baudot rediseñó su equipo para usar un código de cinco unidades. Sin embargo, a veces todavía se necesitaban signos de puntuación y dígitos, por lo que adoptó de Hughes el uso de dos caracteres especiales de espacio entre letras y espacio para figuras que harían que la impresora cambiara entre los casos al mismo tiempo que avanzaba el papel sin imprimir. El código de cinco unidades que comenzó a usar en ese momento […] estaba estructurado para adaptarse a su teclado […], que controlaba dos unidades de cada carácter con interruptores operados por la mano izquierda y las otras tres unidades con la mano derecha. […]
[5] [6] - ^ Rothen, Timoteo (25 de diciembre de 1884). "Le télégraphe imprimeur Baudot" . Journal Télégraphique (en francés). Berna, Suiza: Le Bureau International des Administrations Télégraphiques. VIII / # 16 (12): 241-253 [249]. eISSN 2725-738X . ISSN 2223-1420 . arca: / 12148 / bpt6k5725454q . Consultado el 20 de diciembre de 2020 . [7]
- ^ Pendry, Henry Walter (1920) [Octubre de 1919]. Escrito en Londres, Reino Unido. The Baudôt Printing Telegraph System (2 ed.). Londres, Bath, Melbourne, Nueva York: Sir Isaac Pitman and Sons, Ltd. págs. 43–44. LCCN 21005277 . OCLC 778309351 . OL 6633244M . Consultado el 20 de diciembre de 2020 . (vii + 184 páginas) (NB. La primera edición se publicó en 1913).
- ^ a b MacMillan, David M. (27 de abril de 2010) [25 de abril de 2010, 23 de abril de 2010]. "Códigos que no cuentan: algunos códigos telegráficos de impresión como productos de sus tecnologías (con especial atención al teletipo)" . lemur.com . Revisión 3. Mineral Point, Wisconsin, EE. UU. Archivado desde el original el 18 de diciembre de 2020 . Consultado el 20 de diciembre de 2020 .
- ^ Escrito en Lisboa, Portugual. Convention télégraphique internationale de Saint-Pétersbourg et Règlement et tarifs y Annexés, 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. Signaux de Transmission, Artículo 35. Signaux de Transmission des alphabets télegraphiques internationaux 'nos 1 et 2, signaux du code Morse, de l'appareil Hughes et de l'appareil Siemens". Escrito en Madrid, España. Règlement télégraphique Annexé à la convention internationale des télécommunications - 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) [8]
- ^ "Capítulo IX. Señales de Transmisión. Artículo 35. Señales de Transmisión de los Alfabetos Telegráficos Internacionales Nos. 1 y 2, Señales en 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 francés e inglés). Londres, Reino Unido: Oficina General de Correos / Oficina de Papelería de Su Majestad . 1933 [1932]. págs. 32-40 [34]. 43-152-2 / 18693. Archivado (PDF) desde el original el 21 de diciembre de 2020 . Consultado el 21 de diciembre de 2020 .(1 + 2 * 120 + 26 páginas) [9]
- ^ 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). 41–43 (1979–1981) (1 ed.). Viena, Austria: Technisches Museum für Industrie und Gewerbe , Forschungsinstitut für Technikgeschichte / Springer-Verlag . págs. 81-118. ISBN 3-21181779-4. ISSN 0067-9127 . OCLC 952698275 . ISBN 978-3-21181779-7 .
- ^ Zemanek, Heinrich "Heinz" Josef (7 de junio de 1976 ). "Prehistoria e historia de la informática en Europa central" . Escrito en Viena, Austria. Taller Internacional sobre Gestión del Conocimiento de Requisitos . AFIPS '76: Actas de la conferencia y exposición nacional de informática del 7 al 10 de junio de 1976, junio de 1976. 1 . Nueva York, Estados Unidos: Federación Estadounidense de Sociedades de Procesamiento de Información , Asociación de Maquinaria de Computación . págs. 15-20. doi : 10.1145 / 1499799.1499803 . ISBN 978-1-4503-7917-5. S2CID 14114959 . ‹Ver Tfd› doi : 10.1109 / AFIPS.1976.41 . Archivado desde el original el 17 de diciembre de 2020 . Consultado el 17 de diciembre de 2020 . pag. 17:
[…] En 1874, Schaeffler
(6 páginas) inventó otro telégrafo de impresión , un sistema cuádruple como el Baudot , pero mecánicamente más sofisticado. El telégrafo de Hughes tenía dos dedos que giraban sincrónicamente, uno en el emisor y otro en el receptor. Mediante un teclado similar a un piano, el operador seleccionaba una letra y de ese modo hacía contacto con el dedo giratorio en la dirección correspondiente. Dado que el dedo receptor estaba en la misma dirección en este momento, el receptor podía imprimir la letra correcta. Los telégrafos de impresión de Baudot y Schaeffler utilizan un código binario de cinco bits. ... ¡El código de Schaeffler es un código binario reflejado! Lo que F. Gray patentó en 1953 para PCM , Schaeffler lo había aplicado en su telégrafo en 1874, y por una razón similar: confiabilidad. Tenía dedos de contacto detectando en cinco levas consecutivamente todas las combinaciones; el correcto activa la impresión. Si los dedos deben realizar un número mínimo de movimientos, la solución es el código binario reflejado. Para Schaeffler, esta idea era menor. Más exactamente, el código se describe en una carta del empleado de Correos de Austria, J [ohann] N [epomuk] Teufelhart, insertado allí como una nota al pie y diciendo que Schaeffler encontró el código combinando barras de madera con las diferentes combinaciones hasta que tuvo el mejor solución. Otro empleado del Post, Alexander Wilhelm Lambert de Linz, afirma haber mostrado este código a Schaeffler ya en 1872, pero esta afirmación no es clara y no se puede verificar. […] - ^ Goodall, William M. (enero de 1951). "Televisión por modulación de código de pulso". Revista técnica de Bell System . 30 (1): 33–49. doi : 10.1002 / j.1538-7305.1951.tb01365.x . (NB. Presentado oralmente ante la Convención Nacional de la IRE, Nueva York, marzo de 1949.)
- ^ Karnaugh, Maurice (noviembre de 1953) [23 de abril de 1953, 17 de marzo de 1953]. "El método de mapa para la síntesis de circuitos lógicos combinacionales" (PDF) . Transacciones del Instituto Americano de Ingenieros Eléctricos, Parte I: Comunicación y Electrónica . 72 (5): 593–599. doi : 10.1109 / TCE.1953.6371932 . Documento 53-217. Archivado desde el original (PDF) el 16 de abril de 2017 . Consultado el 16 de abril de 2017 .(NB. También contiene una breve reseña de Samuel H. Caldwell .)
- ^ Wakerly, John F. (1994). Diseño digital: principios y prácticas . Nueva Jersey, Estados Unidos: Prentice Hall . págs. 48–49, 222. ISBN 0-13-211459-3. ISBN 978-0-13-211459-2 .(NB. Las dos secciones de página tomadas juntas dicen que los mapas K están etiquetados con código Gray. La primera sección dice que están etiquetados con un código que cambia solo un bit entre las entradas y la segunda sección dice que dicho código se llama Gray código.)
- ^ 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. 49. ISBN 978-0-486-42785-0. pag. 49:
[…] El mapa de Karnaugh ordena los argumentos de los discriminantes según el código binario reflejado, también llamado código Gray. […]
(xii + 291 + 3 páginas) 1a 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 + aplicación) [10]
- ^ Berger, Erich R .; Händler, 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, necesita mucho espacio.] - ^ "Informatik Sammlung Erlangen (ISER)" (en alemán). Erlangen, Alemania: Friedrich-Alexander Universität . 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: Friedrich-Alexander Universität . 2012-03-13. Archivado desde el original el 26 de febrero de 2012 . Consultado el 15 de abril de 2017 .
- ^ a b c d e Bhat, Girish S .; Salvaje, Carla Diane (1996). "Códigos grises equilibrados" . Revista electrónica de combinatoria . 3 (1). doi : 10.37236 / 1249 .
- ^ Donohue, Ryan (2003). "Sincronización en circuitos lógicos digitales" (PDF) . Archivado (PDF) desde el original el 15 de enero de 2018 . Consultado el 15 de enero de 2018 .
- ^ Hulst, George D. (6 de febrero de 1962) [15 de noviembre de 1957]. Contador de código binario reflejado (PDF) . Nutley, Nueva Jersey, EE.UU .: International Telephone and Telegraph Corporation (ITT). Patente de Estados Unidos 3.020.481 . Número de serie 696793. Archivado (PDF) desde el original el 6 de agosto de 2020 . Consultado el 6 de agosto de 2020 . (5 páginas)
- ^ a b c d 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: Facultad de Aeronáutica , Departamento de Ingeniería de Producción. págs. 7, 9. S2CID 215864694 . CoA Memo 156. Archivado (PDF) desde el original el 15 de diciembre de 2020 . Consultado el 15 de diciembre de 2020 .(18 páginas) (NB. El documento nombra el código de Glixon modificado código Gray y escribe mal el nombre de Richard W. Hamming ).
- ^ Mehta, Huzefa; Owens, Robert Michael; Irwin, Mary Jane "Janie" (22 de marzo de 1996). Algunos problemas en el direccionamiento del código Gray . Actas del 6º Simposio de los Grandes Lagos sobre VLSI (GLSVLSI 96) . Sociedad de Informática IEEE . págs. 178-181. doi : 10.1109 / GLSV.1996.497616 . ISBN 978-0-8186-7502-7. ISSN 1066-1395 .
- ^ a b Doran, Robert "Bob" William (marzo de 2007). El Código Gray (PDF) . Serie de informes de investigación del CDMTCS. Centro de Matemáticas Discretas e Informática Teórica, Universidad de Auckland , Nueva Zelanda. CDMTCS-304. Archivado (PDF) desde el original el 22 de mayo de 2020 . Consultado el 23 de mayo de 2020 . (25 páginas)
- ^ Su, Ching-Long; Tsui, Chi-Ying; Despain, Alvin M. (1994). Técnicas de compilación y diseño de arquitectura de bajo consumo para procesadores de alto rendimiento (PDF) (Informe). Laboratorio de Arquitectura Informática Avanzada. ACAL-TR-94-01. Archivado (PDF) desde el original el 26 de julio de 2020 . Consultado el 17 de diciembre de 2020 .
- ^ Guo, Hui; Parameswaran, Sri (abril-junio de 2010). "Codificación gris desplazada para reducir la conmutación de bus de dirección de memoria de instrucciones para sistemas integrados de baja potencia". Revista de Arquitectura de Sistemas . 56 (4–6): 180–190. doi : 10.1016 / j.sysarc.2010.03.003 .
- ^ Dietz, Henry Gordon "Hank" (2002). "Los algoritmos mágicos agregados: conversión de código gris" . El agregado . Departamento de Ingeniería Eléctrica e Informática, Facultad de Ingeniería, Universidad de Kentucky . Archivado desde el original el 16 de diciembre de 2020 . Consultado el 16 de diciembre de 2020 .
- ^ a b Guan, Dah-Jyh (1998). "Códigos grises generalizados con aplicaciones". Actas del Consejo Nacional de Ciencia, República de China, la parte A . 22 : 841–848. CiteSeerX 10.1.1.119.1344 .
- ^ a b Suparta, I. Nengah (2005). "Una simple prueba de la existencia de códigos Gray exponencialmente equilibrados" . Revista electrónica de combinatoria . 12 . doi : 10.37236 / 1986 .
- ^ a b Flahive, Mary Elizabeth ; Bose, Bella (2007). "Equilibrio cíclico de códigos R -ary Gray" . Revista electrónica de combinatoria . 14 . doi : 10.37236 / 949 .
- ^ Strackx, Raoul; Piessens, Frank (2016). "Ariadne: un enfoque mínimo para la continuidad del estado" . Seguridad de Usenix . 25 .
- ^ a b Salvaje, Carla Diane ; Winkler, Peter (1995). "Códigos grises monótonos y el problema de niveles medios" . Revista de Teoría Combinatoria, serie A . 70 (2): 230–248. doi : 10.1016 / 0097-3165 (95) 90091-8 . ISSN 0097-3165 .
- ^ Savage, Carla Diane (16 de enero de 1997). "Ciclos largos en los dos niveles medios del enrejado booleano" . Ars Combinatoria . Universidad Estatal de Carolina del Norte, Raleigh, Carolina del Norte, Estados Unidos. 35 (A): 97–108. CiteSeerX 10.1.1.39.2249 . ISSN 0381-7032 . S2CID 15975960 . Archivado desde el original el 13 de mayo de 2020 . Consultado el 13 de mayo de 2020 . (15 páginas)
- ^ a b Goddyn, Luis (1999). "MATH 343 Materiales suplementarios de matemáticas discretas aplicadas" (PDF) . Departamento de Matemáticas, Universidad Simon Fraser . Archivado desde el 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". Notas electrónicas en matemáticas discretas . 29 : 571–577. doi : 10.1016 / j.endm.2007.07.091 .
- ^ Richards, Richard Kohler (enero de 1971). "Códigos Snake-in-the-Box". Escrito en Ames, Iowa, EE. UU. Diseño digital . Nueva York, Estados Unidos: Wiley-Interscience , John Wiley & Sons, Inc. págs. 206–207. ISBN 0-471-71945-5. LCCN 73-147235 . (12 + 577 + 1 páginas)
- ^ a b NZ 264738 , Spedding, Norman Bruce, "Un codificador de posición", publicado el 28 de octubre de 1994[ verificación fallida ]
- ^ Spedding, Norman Bruce (28 de octubre de 1994). "La siguiente es una copia de la patente provisional presentada en nombre de Industrial Research Limited el 28 de octubre de 1994 - Patente de Nueva Zelanda 264738" (PDF) . Industrial Research Limited. Patente de Nueva Zelanda 264738. Archivado (PDF) desde el original el 29 de octubre de 2017 . Consultado el 14 de enero de 2018 .
- ^ Hiltgen, Alain P .; Paterson, Kenneth G .; Brandestini, Marco (septiembre de 1996). "Códigos grises de una sola pista" (PDF) . Transacciones IEEE sobre teoría de la información . 42 (5): 1555-1561. doi : 10.1109 / 18.532900 . Zbl 857,94007 .
- ^ Hiltgen, Alain P .; Paterson, Kenneth G. (septiembre de 2001). "Códigos de circuito de vía única" (PDF) . Transacciones IEEE sobre teoría de la información . 47 (6): 2587-2595. CiteSeerX 10.1.1.10.8218 . doi : 10.1109 / 18.945274 . Archivado (PDF) desde el original el 15 de enero de 2018 . Consultado el 15 de enero de 2018 .
- ^ Etzion, Tuvi; Schwartz, Moshe (noviembre de 1999) [17 de mayo de 1998]. "La estructura de los códigos grises de una sola pista" (PDF) . Transacciones IEEE sobre teoría de la información . IT-45 (7): 2383–2396. CiteSeerX 10.1.1.14.8333 . doi : 10.1109 / 18.796379 . Archivado (PDF) desde el original el 15 de enero de 2018 . Consultado el 15 de enero de 2018 . Informe técnico CS0937
- ^ Sillke, Torsten (1997) [1 de marzo de 1993]. "Códigos grises con pocas pistas (una cuestión de Marco Brandestini)" . Archivado desde el original el 29 de octubre de 2017 . Consultado el 29 de octubre de 2017 .
- ^ Etzion, Tuvi; Paterson, Kenneth G. (mayo de 1996). "Códigos grises de pista única casi óptimos" (PDF) . Transacciones IEEE sobre teoría de la información . IT-42 (3): 779–789. CiteSeerX 10.1.1.14.1527 . doi : 10.1109 / 18.490544 . Archivado (PDF) desde el original el 30 de octubre de 2016 . Consultado el 8 de abril de 2018 .
- ^ Ruskey, Frank ; Weston, Mark (18 de junio de 2005). "Un estudio de los diagramas de Venn: diagramas simétricos" . Encuestas dinámicas. Revista electrónica de combinatoria . doi : 10.37236 / 26 .
- ^ Alciatore, David G .; Histand, Michael B. (1999). Mecatrónica . Educación McGraw – Hill - Europa. ISBN 978-0-07-131444-2.
- ^ Krishna (11 de mayo de 2008). "Código gris para QAM" . Archivado desde el original el 29 de octubre de 2017 . Consultado el 29 de octubre de 2017 .
- ^ Strang, Thomas; Dammann, Armin; Röckl, Matthias; 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 . Lay resumen (PDF) .(5/8 páginas) [11]
- ^ Greferath, Marcus (2009). "Una introducción a la teoría de la codificación lineal del 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 . pag. 220 . ISBN 978-3-540-93806-4.
- ^ Solé, Patrick (17 de abril de 2016). Hazewinkel, Michiel (ed.). Códigos Kerdock y Preparata . Enciclopedia de Matemáticas . Springer Science + Business Media . ISBN 1-4020-0609-8. ISBN 978-1-4020-0609-8 . Archivado desde el original el 29 de octubre de 2017 . Consultado el 29 de octubre de 2017 .
- ^ Spaulding, Carl P. (12 de julio de 1965). Cómo utilizar codificadores de eje . Monrovia, California, Estados Unidos: Datex Corporation. (85 páginas)
- ^ a b Wheeler, Edwin L. (30 de diciembre de 1969) [5 de abril de 1968]. Codificador de analógico a digital (PDF) . Nueva York, Estados Unidos: Conrac Corporation. Patente de EE.UU. 3487460A . Número de serie 719026 (397812). Archivado (PDF) desde el original el 5 de agosto de 2020 . Consultado el 21 de enero de 2018 . pag. 5, columna izquierda 9, filas 15-22:
[…] El código MOA-GILLHAM es esencialmente la combinación del código Gray discutido anteriormente y el conocido código Datex ; el código Datex se describe en la patente de EE.UU. 3.165.731 . La disposición es tal que el código Datex define los bits para el recuento de unidades del codificador y el código Gray define los bits para cada una de las décadas de orden superior, las decenas, centenas, etc. […]
(11 páginas) - ^ a b c d e f Dokter, Folkert; Steinhauer, Jürgen (18 de junio de 1973). "2.4. Codificación de números en el sistema binario". Electrónica digital . Biblioteca técnica de Philips (PTL) / Macmillan Education (Reimpresión de la 1ª edición 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-9. Consultado el 11 de mayo de 2020 . pag. 53:
[…] El código Datex […] usa el código O'Brien II dentro de cada década, y números decimales reflejados para las transiciones decimales. Para un procesamiento posterior, es necesaria la conversión del código a la notación decimal natural. Dado que el código de O'Brien II forma un complemento de 9 , esto no da lugar a dificultades particulares: siempre que la palabra de código para las decenas represente un número impar, las palabras de código para las unidades decimales se dan como complementos de 9 por inversión de la cuarto dígito binario. […]
(270 páginas) - ^ a b c d e Dokter, Folkert; Steinhauer, Jürgen (1975) [1969]. "2.4.4.6. Einschrittige Kodes". Digitale Elektronik in der Meßtechnik und Datenverarbeitung: Theoretische Grundlagen und Schaltungstechnik . Philips Fachbücher (en alemán). I (5ª ed. Mejorada y ampliada). 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!" . Refinador de petróleo (publicidad). Compañía Editorial del Golfo . 33 (9): 368. Septiembre de 1954. ISSN 0096-6517 . pag. 368:
[…] La operación de despacho completa, la medición y el control remoto se integran en un solo sistema unificado cuando se instala un sistema de telemedida de código de impulsos "Varec". […]
- ^ Bishup, Bernard W .; Repeta, Anthony A .; Giarrizzo, Frank C. (13 de agosto de 1968) [03 de abril de 1963]. "Sistema de telemedida y control de supervisión con señales de telemedida normalmente continuas" . Leeds y Northrup Co. US3397386A. [12]
- ^ "Formato de pulso del codificador". Manual de instalación y funcionamiento del transmisor micro de 4 cables modelo 1900 (PDF) . Cypress, California, EE.UU .: Whessoe Varec, Inc. Enero de 1993 [1 de julio de 1991]. págs. 04-4–04-8. 33-08461. Archivado (PDF) desde el original el 16 de mayo de 2020 . Consultado el 16 de mayo de 2020 . (38 páginas) (NB. La posición 5 para "Pulgadas" en la página 04-8 debe leer "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 Mark / Space Protocol (MSP)) - Notas de aplicación (PDF) . Emerson Electric . págs. 11-14. Archivado (PDF) desde el original el 16 de mayo de 2020 . Consultado el 16 de mayo de 2020 . (vi + 33 páginas)
- ^ a b c Wightman, Eric Jeffrey (1972). "Capítulo 6. Medición de desplazamiento" . Instrumentación en Control de Procesos (1 ed.). Londres, Reino Unido: Butterworth & Co (Editores) Ltd . págs. 122-123. ISBN 0-408-70293-1. ISBN 1-48316335-0 , 978-1-48316335-2 . pag. 122-123:
[…] También son bien conocidas otras formas de código. Entre estos se encuentran el código de establecimiento de radar real ; El código decimal Exceso de tres ; Código Gillham recomendado por la OACI para la transmisión automática de altura con fines de 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 méritos particulares y se ofrecen como opciones por varios fabricantes de codificadores. […]
(12 + 367 + 5 páginas) - ^ Phillips, Darryl (26 de julio de 2012) [1998]. "Altitud - MODEC ASCII" . Aviónica AirSport. Archivado desde el original el 26 de julio de 2012.
- ^ Stewart, K. (3 de diciembre de 2010). "Código gris de aviación: código de Gillham explicado" . Servicios informáticos personalizados (CCS). Archivado desde el original el 16 de enero de 2018 . Consultado el 14 de enero de 2018 .
- ^ Leslie, William "Bill" HP; Russell, A. (1964). Un código decimal progresivo cíclico para traducción simple a salidas decimales y analógicas (Informe). East Kilbride, Glasgow, Reino Unido: Laboratorio Nacional de Ingeniería . Informe NEL 129. (17 páginas)
- ^ Leslie, William "Bill" HP (1974). "El trabajo en NC en NEL" . En Koenigsberger, Franz ; Tobias, Stephen Albert (eds.). Actas de la Decimocuarta Conferencia Internacional de Investigación y Diseño de Máquinas-Herramienta, 12-14 de septiembre de 1973 . The Macmillan Press Ltd . págs. 215-224 [215, 217]. ISBN 978-1-34901921-2. LCCN 73-16545 . SBN 333-14913-0. ISBN 1-34901921-6 .
- ^ Hoklas, Archibald (6 de septiembre de 1989) [29 de abril de 1988]. "Abtastvorrichtung zur digitalen Weg- oder Winkelmessung" (PDF) (en alemán). VEB Schiffselektronik Johannes Warnke . Patente GDR 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 , a través de DEPATIS . [13] [14]
- ^ a b c d e f g h yo j k Hoklas, Archibald (2005). "Código Gray - Código de distancia de la unidad" . Archivado desde el original el 15 de enero de 2018 . Consultado el 15 de enero de 2018 .
- ^ a b c d e 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 como Analog-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 . pp. 1-2:
[…] Die Firma Harrison Reproduction Equipment, Farnborough / Inglaterra […] hat in jahrelanger Entwicklung in Zusammenarbeit mit der Britischen Luftwaffe und britischen Industriebetrieben den mechanischen Digitizer […] zu einer technischen Reife gebracht, die fast allen Anforderun […] 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 spezissen der Mschieller Code und Bei der Übergabe von einer seinen Aufbau eine relativ einfache Entschlüsselung erlaubt. Der Code basiert auf dem Petherick-Code . […]
(4 páginas) - ^ a b Charnley, CJ; Bidgood, RE; Boardman, GET (octubre de 1965). "El diseño de un codificador de posición neumático" (PDF) . Volúmenes de las actas de la IFAC . La Facultad de Aeronáutica, Cranfield, Bedford, Inglaterra. 2 (3): 75–88. doi : 10.1016 / S1474-6670 (17) 68955-9 . Capítulo 1.5 . Consultado el 14 de enero de 2018 .
- ^ Hollingdale, Stuart H. (19 de septiembre de 1958). "Sesión 14. Tratamiento de datos" . Aplicaciones de las computadoras . Atlas - Application of Computers, Universidad de Nottingham 15-19 de septiembre de 1958 (documento de conferencia). Archivado desde el original el 25 de mayo de 2020 . Consultado el 25 de mayo de 2020 .
- ^ a b c O'Brien, Joseph A. (mayo de 1956) [15/11/1955, 23/06/1955]. "Códigos decimales cíclicos para convertidores analógicos a digitales" . Transacciones del Instituto Americano de Ingenieros Eléctricos, Parte I: Comunicación y Electrónica . Bell Telephone Laboratories, Whippany, Nueva Jersey, EE. UU. 75 (2): 120-122. doi : 10.1109 / TCE.1956.6372498 . ISSN 0097-2452 . S2CID 51657314 . Documento 56-21 . Consultado el 18 de mayo de 2020 . (3 páginas) (NB. 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 de 1956 al 03 de febrero de 1956).
- ^ a b c d e f g h yo Steinbuch, Karl W. , ed. (1962). Escrito en Karlsruhe, Alemania. Taschenbuch der Nachrichtenverarbeitung (en alemán) (1 ed.). Berlín / Göttingen / Nueva York: Springer-Verlag OHG . págs. 71–74, 97, 761–764, 770, 1080–1081. LCCN 62-14511 .
- ^ a b c d e f g h yo 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). 2 (3 ed.). Berlín, Alemania: Springer Verlag . págs. 98-100. ISBN 3-540-06241-6. LCCN 73-80607 . ISBN 978-3-540-06241-7 .
- ^ Foss, Frederic A. (27 de diciembre de 1960) [17 de diciembre de 1954]. "Sistemas de control" (PDF) . International Business Machines Corp . Fig. 7, Fig. 8, Fig. 11. Patente de EE.UU. 2966670A . Número de serie 475945. Archivado (PDF) desde el original el 21 de junio de 2020 . Consultado el 5 de agosto de 2020 . (14 páginas) (NB. El autor llamó a su código 2 * -4-2-1 (+ 9- ± 7- ± 3- ± 1) código decimal reflejado.)
- ^ Foss, Frederic A. (diciembre de 1954). "El uso de un código reflejado en sistemas de control digital". Transacciones IRE en computadoras electrónicas . EC-3 (4): 1–6. doi : 10.1109 / IREPGELC.1954.6499244 . ISSN 2168-1740 . (6 páginas)
- ^ Evans, David Silvester (1958). "[desconocido]" . Transacciones . Instituto de Medida y Control. 10-12: 87. Cite usa un título genérico ( ayuda ) (NB. El código Watts se llamó código WRD o Watts Reflected Decimal para distinguirlo de otros códigos usados 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 EE . UU . págs. 8-10, 19. Informe AWRE No. NR 5/63. [15] (23 páginas)
- ^ Klinkowski, James J. (14 de marzo de 1967) [23 de marzo de 1964]. "Circuitos decodificadores de matriz de diodos electrónicos" (PDF) . Detroit, Michigan, Estados Unidos: Burroughs Corporation . Patente de Estados Unidos 3309695A . Número de serie 353845. Archivado (PDF) desde el original el 23 de mayo de 2020 . Consultado el 23 de mayo de 2020 .(5 páginas) [16]
- ^ Klinkowski, James J. (31 de marzo de 1970) [22 de diciembre de 1966]. "Convertidor de señal decimal codificado en binario" (PDF) . Detroit, Michigan, Estados Unidos: Burroughs Corporation . Patente de EE.UU. 3504363A . Número de serie 603926. Archivado (PDF) desde el original el 23 de mayo de 2020 . Consultado el 23 de mayo de 2020 . (7 páginas)
- ^ "[desconocido]". Noticias de diseño eléctrico . Compañía Editorial Rogers . 12 . 1967. ISSN 0012-7515 . La cita utiliza un título genérico ( ayuda ) [17] [18]
- ^ Tóth-Zentai, Györgyi (5 de octubre de 1979). "Algunos problemas de convertidores digitales rotacionales angulares" . Periodica Polytechnica Ingeniería Eléctrica . Departamento de Tecnología Electrónica, Universidad Técnica, Budapest, Hungría. 23 (3–4): 265–270 [266] . Consultado el 23 de mayo de 2020 . [19] (6 páginas) (NB. Muestra un código de Watts de 6 dígitos).
- ^ Savard, John JG (2018) [2006]. "Representaciones decimales" . quadibloc . Archivado desde el original el 16 de julio de 2018 . Consultado el 16 de julio de 2018 .
- ^ a b Turvey, Jr., Frank P. (29 de julio de 1958) [17 de mayo de 1956]. "Codificador de conteo de pulsos" (PDF) . Nutley, Nueva Jersey, EE.UU .: International Telephone and Telegraph Corporation . Patente de Estados Unidos 2845617A . Número de serie 585494. Archivado (PDF) desde el original el 23 de mayo de 2020 . Consultado el 23 de mayo de 2020 . (5 páginas)
- ^ a b Glixon, Harry Robert (marzo de 1957). "¿Puede aprovechar el código cíclico binario-decimal?" . Ingeniería de control . Technical Publishing Company , una división de Dun-Donnelley Publishing Corporation, Dun & Bradstreet Corp. 4 (3): 87–91. ISSN 0010-8049 . (5 páginas)
- ^ a b Borucki, Lorenz; Dittmann, Joachim (1971) [julio de 1970, 1966, otoño de 1965]. "2.3 Códigos Gebräuchliche in 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-2. LCCN 75-131547 . ISBN 978-3-642-80561-5 .(viii + 252 páginas) 1ra edición (NB. Al igual que Kämmerer , los autores describen un código Glixon de 20 cíclico de 6 bits).
- ^ a b Kämmerer, Wilhelm (mayo de 1969). "II.15. Struktur: Informationsdarstellung im Automaten". Escrito en Jena, Alemania. En Frühauf, Hans ; Kämmerer, Wilhelm; Schröder, Kurz; Winkler, Helmut (eds.). Automate digital: teoría, estructura, técnica, programación . Elektronisches Rechnen und Regeln (en alemán). 5 (1 ed.). Berlín, Alemania: Akademie-Verlag GmbH . pag. 173. Licencia no. 202-100 / 416/69. N º de pedido. 4666 ES 20 K 3.(NB. También existe una segunda edición de 1973. Como Borucki y Dittmann , pero sin nombrarlo código Glixon, el autor crea un código tetradico 20 cíclico a partir del código Glixon y una variante del código Glixon con bit invertido de orden superior).
- ^ 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 .(NB. El autor llamó a este código Schleifencode (en inglés: "código de bucle"). Se diferencia del código BCD gris solo en la codificación del estado 0 para convertirlo en un código de unidad de distancia cíclica para aplicaciones rotativas de círculo completo. -El patrón de código cero permite la autocomprobación del bucle y el uso de las líneas de datos para una distribución de energía ininterrumpida).
- ^ Klar, Rainer (1 de febrero de 1970). Digitale Rechenautomaten - Eine Einführung [ Computadoras digitales - Introducción ]. Sammlung Göschen (en alemán). 1241 / 1241a (1 ed.). Berlín, Alemania: Walter de Gruyter & Co. / GJ Göschen'sche Verlagsbuchhandlung . Consultado el 13 de abril de 2020 . (205 páginas) (NB. Una reimpresión de 2019 de la primera edición está disponible en ISBN 3-11002793-3 , 978-3-11002793-8 . También existe una cuarta edición reelaborada y ampliada ). . pag. 17. ISBN 3-11-083160-0. ISBN 978-3-11-083160-3 . Archiv-Nr. 7990709. Archivado desde el original el 1 de junio de 2020
- ^ Klar, Rainer (1989) [1 de octubre de 1988]. Digitale Rechenautomaten - Eine Einführung in die Struktur von Computerhardware [ Computadoras digitales - Introducción a la estructura del hardware de computadora ]. Sammlung Göschen (en alemán). 2050 (cuarta edición revisada). Berlín, Alemania: Walter de Gruyter & Co. p. 28. ISBN 3-11011700-2. ISBN 978-3-11011700-4 .(320 páginas) (NB. El autor llamó a este código Einheitsabstandscode (en inglés: "unit-distance code"). Al intercambiar dos filas de bits e invertir una de ellas, se puede transferir al código O'Brien II , mientras que al intercambiar e invirtiendo dos filas de bits, se puede transferir al código Petherick ).
Otras lecturas
- Richards, Richard Kohler (1955). Operaciones aritméticas en computadoras digitales (5 ed.). Nueva York, Estados Unidos: D. Van Nostrand Co., Inc.
- Richards, Richard Kohler (1967). Circuitos y componentes 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 .
- Prensa, William H .; Teukolsky, Saul A .; Vetterling, William T .; Flannery, Brian P. (2007). "Sección 22.3. Códigos grises" . Recetas numéricas: el arte de la informática científica (3ª ed.). Nueva York, Estados Unidos: Cambridge University Press . ISBN 978-0-521-88068-8.
- Salvaje, Carla Diane (1997). "Una encuesta de códigos grises combinatorios" . Revisión SIAM . Sociedad de Matemática Industrial y Aplicada (SIAM). 39 (4): 605–629. CiteSeerX 10.1.1.39.1924 . doi : 10.1137 / S0036144595295272 . JSTOR 2132693 .
- Wilf, Herbert Saul (1989). "Capítulos 1-3". Algoritmos combinatorios: una actualización . Sociedad de Matemática Industrial y Aplicada (SIAM). ISBN 0-89871-231-9. ISBN 978-0-89871-231-5 .
- Dewar, Megan; Stevens, Brett (29 de agosto de 2012). Pedidos de diseños de bloques: códigos grises, ciclos universales y configuración . Libros CMS en Matemáticas (1 ed.). Nueva York, Estados Unidos: Springer Science + Business Media . doi : 10.1007 / 978-1-4614-4325-4 . ISBN 978-1-46144324-7. ISSN 1613-5237 . ISBN 1-46144324-5 .
- Maxfield, Clive "Max" (1 de octubre de 2012) [28 de mayo de 2011]. "Fundamentos del Código Gray" . Diseñar cómo hacer . EETimes . Parte 1. Archivado desde el original el 30 de octubre de 2017 . Consultado el 30 de octubre de 2017 . Parte 2 Parte 3
- Warren, Jr., Henry S. (2013). "Capítulo 13: Código Gray". Hacker's Delight (2 ed.). Addison Wesley - Pearson Education, Inc. págs. 311–317. ISBN 978-0-321-84268-8. (7 páginas)
- Zinovik, Igor; Kroening, Daniel; Chebiryak, Yury (21 de marzo de 2008). "Computación de códigos grises combinatorios binarios a través de una búsqueda exhaustiva con SAT Solvers" . Transacciones IEEE sobre teoría de la información . IEEE . 54 (4): 1819–1823. doi : 10.1109 / TIT.2008.917695 . hdl : 20.500.11850 / 11304 . (5 páginas)
- O'Brien, Joseph A. (junio de 1957). "Traductores de código binario-decimal unidad-distancia" . Transacciones IRE en computadoras electrónicas . EC-6 (2): 122–123. doi : 10.1109 / TEC.1957.5221585 . ISSN 0367-9950 . Consultado el 25 de mayo de 2020 . (2 páginas)
- Barr, KG (marzo de 1981). "Un código Gray decimal: se convierte fácilmente para la codificación de la posición del eje" (PDF) . Mundo inalámbrico . Vol. 87 no. 1542. Facultad de Ciencias Naturales, Universidad de las Indias Occidentales . págs. 86-87. Archivado (PDF) desde el original el 28 de julio de 2020 . Consultado el 28 de julio de 2020 .
enlaces externos
- Demostración de "Código Gray" por Michael Schreiber, Proyecto de Demostraciones Wolfram (con implementación de Mathematica). 2007.
- Diccionario NIST de algoritmos y estructuras de datos: código Gray .
- Guía del autoestopista para la computación evolutiva, P21: ¿Qué son los códigos Gray y por qué se utilizan? , incluido el código C para convertir entre binario y BRGC.
- Dragos A. Harabor usa códigos Gray en un digitalizador 3D .
- Los códigos grises de una sola pista, los códigos de cadena binaria ( Lancaster 1994 ) y los registros de desplazamiento de retroalimentación lineal son útiles para encontrar la posición absoluta en un codificador rotatorio de una sola pista (u otro sensor de posición).
- Columna AMS: códigos grises
- Generador de rueda de codificador óptico
- ProtoTalk.net - Comprensión de la codificación en cuadratura : cubre la codificación en cuadratura con más detalle con un enfoque en aplicaciones robóticas