stringtranslate.com

código polinómico

En teoría de codificación , un código polinómico es un tipo de código lineal cuyo conjunto de palabras de código válidas consta de aquellos polinomios (normalmente de alguna longitud fija) que son divisibles por un polinomio fijo determinado (de longitud más corta, llamado polinomio generador ).

Definición

Fijar un campo finito , cuyos elementos llamamos símbolos . Para construir códigos polinomiales, identificamos una cadena de símbolos con el polinomio

Fija los números enteros y deja que sea algún polinomio fijo de grado , llamado polinomio generador . El código polinomial generado por es el código cuyas palabras de código son precisamente los polinomios de grado menor que son divisibles (sin resto) por .

Ejemplo

Considere el código polinómico con , y el polinomio generador . Este código consta de las siguientes palabras de código:

O escrito explícitamente:

Dado que el código polinomial se define sobre el campo binario de Galois , los elementos polinomiales se representan como una suma de módulo -2 y los polinomios finales son:

De manera equivalente, expresadas como cadenas de dígitos binarios, las palabras en clave son:

Este, como todo código polinómico, es de hecho un código lineal , es decir, las combinaciones lineales de palabras de código son nuevamente palabras de código. En un caso como este donde el campo es GF(2), las combinaciones lineales se encuentran tomando el XOR de las palabras de código expresadas en forma binaria (por ejemplo, 00111 XOR 10010 = 10101).

Codificación

En un código polinómico con una longitud de código y un polinomio generador de grado , habrá exactamente palabras de código. De hecho, por definición, es una palabra clave si y sólo si tiene la forma , donde (el cociente ) es de grado menor que . Dado que existen tales cocientes disponibles, existe el mismo número de palabras de código posibles. Por lo tanto, las palabras de datos simples (no codificadas) deben tener una longitud

Algunos autores, como (Lidl y Pilz, 1999), sólo analizan el mapeo como la asignación de palabras de datos a palabras de código. Sin embargo, esto tiene la desventaja de que la palabra de datos no aparece como parte de la palabra de código.

En cambio, el siguiente método se utiliza a menudo para crear un código sistemático : dada una palabra de datos de longitud , primero se multiplica por , lo que tiene el efecto de desplazarse lugares hacia la izquierda. En general, no será divisible por , es decir, no será una palabra clave válida. Sin embargo, existe una palabra de código única que se puede obtener ajustando los símbolos de la derecha . Para calcularlo, calcula el resto de dividir por :

donde es de grado menor que . La palabra de código correspondiente a la palabra de datos se define entonces como

Tenga en cuenta las siguientes propiedades:

  1. , que es divisible por . En particular, es una palabra clave válida.
  2. Como es de grado menor que , los símbolos de más a la izquierda concuerdan con los símbolos correspondientes de . En otras palabras, los primeros símbolos de la palabra de código son los mismos que los de la palabra de datos original. Los símbolos restantes se denominan dígitos de suma de control o bits de control .

Ejemplo

Para el código anterior con , y polinomio generador , obtenemos la siguiente asignación de palabras de datos a palabras de código:

Descodificación

Un mensaje erróneo se puede detectar de forma sencilla mediante la división del polinomio por el polinomio generador, lo que da como resultado un resto distinto de cero.

Suponiendo que la palabra clave esté libre de errores, se puede descodificar un código sistemático simplemente eliminando los dígitos de la suma de comprobación.

Si hay errores, se debe realizar la corrección de errores antes de decodificar. Existen algoritmos de decodificación eficientes para códigos polinomiales específicos, como los códigos BCH .

Propiedades de los códigos polinomiales

Como ocurre con todos los códigos digitales, las capacidades de detección y corrección de errores de los códigos polinomiales están determinadas por la distancia mínima de Hamming del código. Dado que los códigos polinomiales son códigos lineales, la distancia mínima de Hamming es igual al peso mínimo de cualquier palabra de código distinta de cero. En el ejemplo anterior, la distancia mínima de Hamming es 2, ya que 01001 es una palabra de código y no hay ninguna palabra de código distinta de cero con un solo bit establecido.

Las propiedades más específicas de un código polinómico a menudo dependen de propiedades algebraicas particulares de su polinomio generador. A continuación se muestran algunos ejemplos de tales propiedades:

La naturaleza algebraica de los códigos polinomiales, con polinomios generadores inteligentemente elegidos, a menudo también puede aprovecharse para encontrar algoritmos eficientes de corrección de errores. Este es el caso de los códigos BCH .

Familias específicas de códigos polinomiales.

Referencias