stringtranslate.com

Código de peso constante

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

La 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 la configuración automática del umbral de brillo que distingue las rayas 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 pareada de peso casi constante . Además de usarse como códigos de corrección de errores, el gran espacio entre palabras de código también se puede utilizar en el diseño de circuitos asincrónicos, como circuitos insensibles al retardo .

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

A(norte,d,el)

El problema central en relación con los códigos de peso constante es el siguiente: ¿cuál es el número máximo de palabras de código en un código binario de peso constante con longitud , distancia de Hamming y peso ? Este número se denomina .

Aparte de algunas observaciones triviales, generalmente es imposible calcular estos números de una manera sencilla. Los límites superiores están dados por varios teoremas importantes, como el primer y el segundo límite de Johnson [2] , y a veces se pueden encontrar límites superiores mejores de otras maneras. Los límites inferiores se encuentran con mayor frecuencia al exhibir códigos específicos, ya sea con el uso de una variedad de métodos de matemáticas discretas o mediante una búsqueda intensiva en la computadora. En 1990 se publicó una gran tabla de dichos códigos que rompen récords [3] y en 2006 se publicó una extensión a códigos más largos (pero solo para aquellos valores de y que son relevantes para la aplicación GSM). [1]

1 denortecódigos

Un caso especial de códigos de peso constante son los códigos uno de N , que codifican bits en una palabra de código de bits. El código uno de dos utiliza las palabras de código 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 riel dual y el enlace de cadena [4] utilizado en circuitos insensibles al retardo. Para estos códigos, y .

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

Código equilibrado

En teoría de codificación , un código balanceado es un código binario de corrección de errores hacia adelante para el cual cada palabra de código 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 desordenados, que son códigos que tienen la propiedad de que las posiciones de los unos en una palabra de código nunca son un subconjunto de las posiciones de los unos en otra palabra de código. Como todos los códigos desordenados, 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 llevarse a cabo 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ásica 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 un código de (excepto por la palabra de código cero), el código tres de seis ; etc.

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

metro-de-nortecódigos

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 solo error de 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 simple es agregar una cadena de unos a los datos originales hasta que contenga m unos, luego agregar ceros para crear un código de longitud n .

Ejemplo:

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

Referencias

  1. ^ ab DH 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 las páginas 526-527 de FJ MacWilliams y NJA Sloane (1979). The Theory of Error-Correcting Codes . Ámsterdam: Holanda Septentrional.
  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 con temporizador automático".
  5. ^ ab DE Knuth (enero de 1986). "Códigos equilibrados eficientes" (PDF) . IEEE Transactions on Information Theory . 32 (1): 51–53. doi :10.1109/TIT.1986.1057136.[ enlace muerto permanente ]
  6. ^ Sulaiman Al-Bassam; Bella Bose (marzo de 1990). "Sobre códigos equilibrados". IEEE Transactions on Information Theory . 36 (2): 406–408. doi :10.1109/18.52490.
  7. ^ K. Schouhamer Immink y J. Weber (2010). "Códigos equilibrados muy eficientes". IEEE Journal on Selected Areas in Communications . 28 (2): 188–192. doi :10.1109/jsac.2010.100207. S2CID  8596702 . Consultado el 12 de febrero de 2018 .
  8. ^ "Desmitificando el subsistema MIPI C-PHY/DPHY: compensaciones, desafíos y adopción" (mirror)

Enlaces externos