Unidad 5 · Los códigos cíclicos · un solo polinomio que decide el código entero: los cuatro teoremas, la factorización de , la matriz de Toeplitz y el dual por el recíproco de
Un código cíclico tiene palabras, y todas salen de una sola: la de menor grado. Con ese polinomio se codifica, se verifica si algo es palabra y se construyen códigos nuevos sin escribir una matriz. Cuatro teoremas dicen qué es y cuáles hay.
Las palabras se escriben como polinomios, , y girar una palabra un lugar es multiplicarla por módulo : la potencia que se pasa vuelve como .
Teorema 1. Sea un código cíclico no trivial. Entre sus palabras no nulas hay una sola de grado mínimo. Ese polinomio, el polinomio generador , tiene término independiente y grado .
Sea una palabra no nula de grado mínimo . El grado se prueba en la sección siguiente, porque usa el Teorema 2; las otras dos partes salen ya.
Paso 1: el término independiente es 1. Si fuera , sería , con de grado . Girar unos lugares da : el giro de una palabra es una palabra, y ésta tendría grado menor que .
Paso 2: es única. Si hubiera dos palabras distintas de grado , sobre las dos tienen un 1 en . Su suma es una palabra, porque el código es lineal, no es nula, porque son distintas, y tiene grado menor que .
Teorema 2. Un polinomio de grado menor que es palabra de si y sólo si es múltiplo de .
Paso 1: los son palabras. Para , el producto tiene grado a lo sumo : es el giro de en lugares, sin que nada dé la vuelta. Por linealidad, es palabra para todo de grado a lo sumo .
Paso 2: el resto de una palabra es cero. Dividiendo una palabra por queda , con grado de menor que . Entonces es suma de dos palabras, y es palabra. Como su grado está por debajo del mínimo, .
Paso 3: la vuelta. Si con grado menor que , es una suma de polinomios con , todos palabras.
El grado, que cierra el Teorema 1. Las palabras son entonces los productos con grado de a lo sumo : hay , todos distintos. El código tiene , así que .
Dos consecuencias. La primera es un codificador: el mensaje va a la palabra . La segunda es una prueba de pertenencia: es palabra si y sólo si . Ese resto es el síndrome de un código cíclico, y la división se hace con un registro de desplazamiento de etapas.
Teorema 3. El polinomio generador de un código cíclico divide a .
Paso 1: un giro de lugares. El producto tiene grado exactamente . Reducirlo módulo es restarle una vez, y lo que queda es el giro de en lugares:
Paso 2: el giro es múltiplo. es palabra, y por el Teorema 2 vale . Despejando,
Teorema 4, el recíproco. Si divide a y tiene grado , sus múltiplos de grado menor que forman un código cíclico .
Paso 1: es lineal y tiene dimensión . Los múltiplos con grado de menor que son , distintos, y la suma de dos es otro.
Paso 2: es cerrado bajo el giro. Girar un lugar es multiplicar por y, si era 1, restar . Con ,
que es múltiplo de y tiene grado menor que : está en el código.
Los dos juntos dicen que los códigos cíclicos de largo son exactamente los divisores de , uno por divisor. La pregunta «¿qué códigos cíclicos hay?» se vuelve una factorización.
La receta: se fija , se factoriza en irreducibles sobre , y cada producto de algunos de esos factores es un polinomio generador. Su grado, que es la redundancia , es la suma de los grados de los factores elegidos. Si hay factores distintos, hay divisores; dos son triviales —, que da todos los vectores, y , que deja sólo el cero—, y quedan
códigos cíclicos no triviales de largo . Para son cinco factores:
y códigos. Los tres de grado 4 son irreducibles, pero sólo dos son primitivos: y , que además son recíprocos uno del otro. El tercero, , divide a y su tiene orden 5, no 15.
Elegir y da
de grado : un (15,7). Su distancia mínima no se lee en los grados: enumeradas sus palabras, . Lo que la factorización fija es ; la distancia depende de cuáles factores entran, y con la misma redundancia hay cíclicos mejores y peores. Hasta dónde llega eso en largo 15 está en un bit más de redundancia puede costar distancia.
Arranca sin factores: genera todos los vectores y no corrige nada. Elegí sola: es el Hamming (15,11), con . Cambiala por , del mismo grado: la redundancia no se mueve y la distancia baja a 2. Volvé a y pasá al dual: no aparecen los cuatro factores que faltaban, aparece uno cambiado por su recíproco. Después pasá al código de y mirá la última lectura.
El código es lineal, así que tiene una matriz generadora. Los polinomios son palabras, tienen grados distintos y por eso son independientes: son una base. Escritos como filas,
Es una matriz de Toeplitz: cada fila es la anterior corrida un lugar, y las entradas quedan dichas por los coeficientes de . Para el (7,4) de , a la izquierda; a la derecha, la misma después de sumar filas hasta dejar el mensaje intacto:
con la posición 0 a la izquierda. La primera no es sistemática: el mensaje no aparece en . La segunda está en forma sistemática a la manera cíclica, con la paridad en las primeras posiciones y el mensaje en las últimas , al revés que en la Unidad 3. Las dos generan las mismas 16 palabras, comparadas una por una. A la sistemática no hace falta llegar sumando filas: sale de una sola división por , y eso es el codificador cíclico.
El cociente
tiene grado y se llama polinomio de paridad. Toda palabra lo anula: si , entonces módulo . De ahí salen las ecuaciones de paridad, en tres pasos.
Paso 1: un producto con un hueco. Sin reducir, . Como tiene grado menor que , los coeficientes de son cero.
Paso 2: cada coeficiente es una ecuación. El coeficiente de en el producto es una suma de productos , y anularlo da
que son ecuaciones.
Paso 3: cada ecuación es el recíproco corrido. La ecuación toca las posiciones a , con los coeficientes de al revés: en la primera y en la última. Escrita como fila es el recíproco
corrido lugares. Las filas forman una matriz de paridad que es la de Toeplitz de . Y como genera al dual:
El dual de un código cíclico es cíclico, y lo genera el recíproco de , , de grado : es un . Divide a porque los recíprocos se multiplican, y el de es él mismo. En el (7,4),
La primera fila es la ecuación : . El código que genera es un (7,3) cuyas siete palabras no nulas pesan 4: el símplex, el dual del Hamming.
La trampa está en el recíproco. El código que genera mismo es otro (7,3) con las siete palabras de peso 4 —las del dual leídas al revés— y no es ortogonal al (7,4). Tiene los parámetros del dual y no es el dual. Medido sobre los 30 cíclicos de largo 15: el código de es ortogonal al original y de dimensión en los 30, y el de tiene la misma distancia mínima en los 30, pero es ortogonal sólo en 14, exactamente los 14 en que es su propio recíproco. En factores, el recíproco intercambia con y deja los otros tres como están.
Un que no divide. Los múltiplos de cualquier polinomio, con grado menor que , forman un código lineal. Lo que los hace cíclicos es el Teorema 4, y pide que divida a . Con y el resto de dividir es , no cero. Los múltiplos forman un (15,12) lineal, y su palabra , girada un lugar, da , que no es múltiplo de . Contadas, 2048 de las 4096 palabras salen del código al girarlas una vez. En el Paso 2 del Teorema 4 es el término el que deja de ser múltiplo.
Un largo par. La cuenta supone factores distintos, y eso pasa con impar. Con par, sobre vale , y los factores se repiten:
Cada factor entra cero, una o dos veces: divisores, que son los que da probar todos los polinomios de grado hasta 14, y 25 códigos cíclicos no triviales de largo 14. No son ni . Los teoremas valen igual; lo que deja de valer es contar subconjuntos.