Articulo de referencia

Código de peso constante

En teoría de la codificación , un código de peso constante , también llamado código m de n o código m de n , es un código de detección y corrección de errores en el que todas la...

En teoría de la codificación , un código de peso constante , también llamado código m de n o código m de n , es un código de detección y corrección de errores en el que todas las palabras clave comparten el mismo peso de Hamming . El código one-hot y el código balanceado son dos tipos de códigos de peso constante ampliamente utilizados.

Esta teoría está estrechamente relacionada con la de los diseños (como los diseños t y los sistemas de Steiner ). La mayor parte del trabajo en este campo de las matemáticas discretas se centra en los códigos binarios de peso constante.

Los códigos binarios de peso constante tienen varias aplicaciones, incluido el salto de frecuencia en redes GSM . [ 1 ] La mayoría de los códigos de barras utilizan un código binario de peso constante para simplificar el ajuste automático del umbral de brillo que distingue las franjas blancas y negras. La mayoría de los códigos de línea utilizan un código de peso constante o un código de disparidad emparejado de peso casi constante . Además de su uso como códigos de corrección de errores, el gran espacio entre las palabras del código también se puede utilizar en el diseño de circuitos asíncronos , como los circuitos insensibles al retardo .

Los códigos de peso constante, como los códigos de Berger , pueden detectar todos los errores unidireccionales.

A ( n , d , w )

El problema central con respecto a los códigos de peso constante es el siguiente: ¿cuál es el número máximo de palabras clave en un código binario de peso constante con longitudnorte{\displaystyle n}, distancia de Hammingd{\displaystyle d}y pesow{\displaystyle w}¿Este número se llama?A(norte,d,w){\displaystyle A(n,d,w)}.

Aparte de algunas observaciones triviales, generalmente es imposible calcular estos números de forma directa. Los límites superiores vienen dados por varios teoremas importantes, como los primeros y segundos límites de Johnson , [ 2 ] y a veces se pueden encontrar mejores límites superiores de otras maneras. Los límites inferiores se encuentran con mayor frecuencia exhibiendo códigos específicos, ya sea con el uso de una variedad de métodos de matemáticas discretas o a través de una búsqueda computacional intensiva. Una gran tabla de tales códigos que batieron récords se publicó en 1990, [ 3 ] y una extensión a códigos más largos (pero solo para aquellos valores ded{\displaystyle d}yw{\displaystyle w}que son relevantes para la aplicación GSM) se publicó en 2006. [ 1 ]

Códigos 1 de N

Un caso especial de códigos de peso constante son los códigos uno de N , que codificanregistro2norte{\displaystyle \log _{2}N}bits en una palabra clave denorte{\displaystyle N}bits. El código uno de dos utiliza las palabras clave 01 y 10 para codificar los bits '0' y '1'. Un código uno de cuatro puede utilizar las palabras 0001, 0010, 0100, 1000 para codificar dos bits 00, 01, 10 y 11. Un ejemplo es la codificación de doble riel y el enlace de cadena [ 4 ] utilizado en circuitos insensibles al retardo. Para estos códigos,norte=norte, d=2, w=1{\displaystyle n=N,~d=2,~w=1}yA(norte,d,w)=norte{\displaystyle A(n,d,w)=n}.

Algunos de los usos más notables de los códigos one-hot incluyen el código de marca bifásico que utiliza un código 1 de 2; la modulación por posición de pulso que utiliza un código 1 de n ; el decodificador de direcciones , etc.

Código equilibrado

En teoría de la codificación , un código balanceado es un código binario de corrección de errores hacia adelante en el que cada palabra clave contiene un número igual de bits cero y uno. Los códigos balanceados fueron introducidos por Donald Knuth ; [ 5 ] son ​​un subconjunto de los llamados códigos no ordenados, que son códigos que tienen la propiedad de que las posiciones de los unos en una palabra clave nunca son un subconjunto de las posiciones de los unos en otra palabra clave. Al igual que todos los códigos no ordenados, los códigos balanceados son adecuados para la detección de todos los errores unidireccionales en un mensaje codificado. Los códigos balanceados permiten una decodificación particularmente eficiente, que puede realizarse en paralelo. [ 5 ] [ 6 ] [ 7 ]

Algunos de los usos más notables de los códigos de peso equilibrado incluyen el código de marca bifásico que utiliza un código 1 de 2; la codificación 6b/8b utiliza un código 4 de 8; el código Hadamard es un2k1{\displaystyle 2^{k-1}}de2k{\displaystyle 2^{k}}código (excepto la palabra clave cero), el código tres de seis ; etc.

La codificación de carril de 3 hilos utilizada en MIPI C-PHY puede considerarse una generalización del código de peso constante a ternario: cada hilo transmite una señal ternaria y, en cualquier instante, uno de los 3 hilos está transmitiendo una señal baja, otro una señal media y otro una señal alta. [ 8 ]

códigos m de n

Un código m de n es un código de detección de errores separable con una longitud de palabra de código de n bits, donde cada palabra de código contiene exactamente m instancias de un "uno". Un error de un solo bit hará que la palabra de código tenga m + 1 o m 1 "unos". Un ejemplo de código m de n es el código 2 de 5 utilizado por el Servicio Postal de los Estados Unidos .

La implementación más sencilla consiste en añadir una cadena de unos a los datos originales hasta que contenga m unos, y luego añadir ceros para crear un código de longitud n .

Ejemplo:

Algunos de los usos más notables de los códigos de peso constante, aparte de los códigos one-hot y de peso equilibrado ya mencionados anteriormente, incluyen el Código 39 que utiliza un código 3 de 9; el código decimal codificado biquinario que utiliza un código 2 de 7, el código 2 de 5 , etc.

Referencias

  1. 1 2 D. H. Smith, LA Hughes y S. Perkins (2006). " Una nueva tabla de códigos de peso constante de longitud mayor que 28 ". The Electronic Journal of Combinatorics 13 .
  2. Véase pp. 526–527 de FJ MacWilliams y NJA Sloane (1979). The Theory of Error-Correcting Codes . Ámsterdam: North-Holland.
  3. AE Brouwer, James B. Shearer, NJA Sloane y Warren D. Smith (1990). "Una nueva tabla de códigos de peso constante". IEEE Transactions of Information Theory 36 .
  4. WJ Bainbridge; A. Bardsley; RW McGuffin. "Diseño de sistemas en chip utilizando redes en chip autosincronizadas" .
  5. 1 2 D.E. Knuth (enero de 1986). "Códigos balanceados eficientes" (PDF) . IEEE Transactions on Information Theory . 32 (1): 51– 53. doi : 10.1109/TIT.1986.1057136 .
  6. Sulaiman Al-Bassam; Bella Bose (marzo de 1990). "Sobre códigos balanceados". IEEE Transactions on Information Theory . 36 (2): 406– 408. doi : 10.1109/18.52490 .
  7. K. Schouhamer Immink y J. Weber (2010). "Códigos balanceados muy eficientes" . IEEE Journal on Selected Areas in Communications . 28 (2): 188– 192. doi : 10.1109/jsac.2010.100207 . S2CID 8596702. Recuperado el 12 de febrero de 2018 . 
  8. "Desmitificando el subsistema MIPI C-PHY / DPHY: ventajas, desventajas, desafíos y adopción" ( enlace alternativo )
  • Tabla de límites inferiores enA(norte,d,w){\displaystyle A(n,d,w)}Mantenido por Andries Brouwer
  • Tabla de límites superiores enA(norte,d,w){\displaystyle A(n,d,w)}Mantenido por Erik Agrell