Código cíclico

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 28 de enero de 2021; las comprobaciones requieren 2 ediciones .

Un código cíclico  es un código de bloque lineal que tiene la propiedad de ciclicidad, es decir, cada permutación cíclica de una palabra de código es también una palabra de código. Se utiliza para transformar información para protegerla de errores (consulte Detección y corrección de errores ).

Introducción

Sea  una palabra de longitud n sobre un alfabeto de elementos de un campo finito y  sea un polinomio correspondiente a esta palabra en una variable formal . Se puede ver que esta correspondencia es un isomorfismo de espacios lineales. Dado que las "palabras" consisten en letras del campo, se pueden sumar y multiplicar (elemento por elemento), y el resultado estará en el mismo campo. El polinomio correspondiente a la combinación lineal del par de palabras y es igual a la combinación lineal de los polinomios de estas palabras .

Esto nos permite considerar el conjunto de palabras de longitud n sobre un campo finito como un espacio lineal de polinomios de grado máximo n  − 1 sobre el campo .

Descripción algebraica

Si  es una palabra código obtenida por un desplazamiento cíclico de un bit a la izquierda de la palabra , entonces el polinomio correspondiente se obtiene a partir del anterior multiplicando por x :

, utilizando el hecho de que

Desplazamiento a la derecha e izquierda, respectivamente, por bits:

Si  es un polinomio arbitrario sobre el campo y  es una palabra de código de un código cíclico , entonces  también es una palabra de código de este código.

Polinomio generador

Definición

Un polinomio generador de un código cíclico es un polinomio distinto de cero de , cuyo grado es el más pequeño y el coeficiente en el grado más alto .

Teorema 1

Si es un código  cíclico y  su polinomio generador, entonces el grado es , y cada palabra de código se puede representar de manera única como

donde el grado es menor o igual a .

Teorema 2

 — polinomio generador del código cíclico — es un divisor del binomio .

Consecuencias

Por lo tanto, cualquier polinomio divisor puede ser elegido como polinomio generador . El grado del polinomio seleccionado determinará el número de símbolos de verificación , el número de símbolos de información .

Matriz generadora

Los polinomios son linealmente independientes, de lo contrario para distinto de cero , lo cual es imposible.

Entonces, las palabras de código se pueden escribir, como para los códigos lineales, de la siguiente manera:

donde es la matriz generadora ,  es el polinomio de información.

La matriz se puede escribir en forma simbólica:

Matriz de cheques

Para cada palabra clave de un código cíclico, . Por lo tanto, la matriz de verificación se puede escribir como

Después

Codificación

Asistemático

Con la codificación no sistemática, la palabra clave se obtiene como el producto de un polinomio de información por uno generador:

Se puede realizar multiplicando polinomios.

Sistemático

Con la codificación sistemática, la palabra de código se forma en forma de un subbloque de información y una verificación:

Deje que la palabra de información forme las potencias más altas de la palabra de código, luego

Entonces se sigue de la condición

Esta ecuación define la regla de codificación sistemática. Se puede implementar utilizando filtros lineales multiciclo (MLF) .

Ejemplos

Código binario (7,4,3)

Como divisor , elegimos un polinomio generador de tercer grado , luego el código resultante tendrá una longitud , el número de símbolos de verificación (el grado del polinomio generador) , el número de símbolos de información , la distancia mínima .

Generando matriz de código:

donde la primera línea es un polinomio con coeficientes en orden ascendente.

Las líneas restantes son desplazamientos cíclicos de la primera línea.

Comprobar matriz :

donde la i -ésima columna, a partir de la 1a, es el resto de la división por el polinomio , escrito en grados ascendentes, a partir de la parte superior.

Entonces, por ejemplo, la cuarta columna es , o en notación vectorial .

Es fácil comprobar eso .

Código binario (15,7,5) BCH

Como polinomio generador , puedes elegir el producto de dos divisores :

Entonces cada palabra clave se puede obtener usando el producto del polinomio de información con el grado de la siguiente manera:

Por ejemplo, una palabra de información corresponde a un polinomio , luego a una palabra de código , o en forma de vector .

Véase también

Enlaces