Unidad 5 · Los códigos cíclicos · el registro divisor sin entrada, las órbitas de sus estados, por qué irreducible no alcanza, y la secuencia de período máximo
El registro de desplazamiento que divide por codifica y calcula síndromes porque le entra un dato. Sin el dato, lo que queda no calcula nada sobre nadie: genera una secuencia que depende sólo de sus conexiones y de dónde arrancó. Con el polinomio de conexión bien elegido, esa secuencia tarda en repetirse lo máximo posible, y sale de ahí el mismo objeto que ya generaba el código de Hamming.
Un registro de desplazamiento realimentado (linear feedback shift register, LFSR) es un registro divisor sin entrada. Tiene etapas, y el polinomio que fija sus realimentaciones se llama polinomio de conexión:
El estado es el contenido de las etapas, , y cada ciclo de reloj lo transforma así:
La salida es , el bit que abandona el registro por arriba: del estado en el ciclo . Con y arrancando en , con a la izquierda:
| ciclo | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| estado | 1000 | 0100 | 0010 | 0001 | 1100 | 0110 | 0011 | 1101 |
| salida | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
Tres cosas salen de la definición, sin cuentas.
Hay estados y la transición es determinista, así que tarde o temprano un estado se repite y la salida se vuelve periódica.
La transición se puede desandar. Del estado nuevo se lee , y con se despeja cada . Todo estado tiene un único antecesor: el registro no entra a un ciclo desde afuera, cada estado ya está en uno.
El estado nulo se queda quieto. Con todo en cero, y nada cambia. Queda afuera, y el período más largo posible es el de un ciclo que recorra los otros: .
Leído como polinomio, el estado es , y la transición tiene una lectura de una línea:
Paso 1: desplazar es multiplicar por . Cada pasa a la etapa , que es pasar de multiplicar a a multiplicar a . El que estaba arriba queda como , fuera del registro.
Paso 2: la realimentación reduce. Módulo , , porque en GF(2) restar es sumar. Cambiar por eso es poner en y sumar en cada etapa: exactamente la ecuación de la transición.
Arrancado en , que es el polinomio , después de ciclos el registro tiene . Simulado ciclo a ciclo durante 30 ciclos con y con , el estado coincide en todos con ese resto. Es la construcción de GF(2⁴) con en el papel de : los estados son en su representación de 4 bits, uno por ciclo. El LFSR es el circuito que recorre las potencias de α.
Eliminando el estado de la transición queda una relación entre los bits de salida solos:
El coeficiente multiplica al bit que salió ciclos atrás. Ordenada por retardo, la recurrencia lee los coeficientes de al revés, y el polinomio que la satisface es el recíproco:
Para el recíproco es , y la recurrencia es . Sobre la salida de la tabla, y . Comprobada sobre los ocho polinomios de grado 4, desde cada uno de los 15 estados no nulos y durante 60 bits, la recurrencia por no falla nunca.
Multiplicando la serie por , la recurrencia anula todos los coeficientes desde en adelante. Lo que sobrevive es un polinomio de grado menor que , fijado por el estado inicial:
El codificador se quedaba con el resto de una división. El LFSR entrega el cociente de una división larga que no termina nunca, bit a bit. Y el recíproco no es nuevo en la unidad: el dual de un cíclico lo genera , el recíproco del polinomio de paridad. Vuelve en la sección 07.
Como cada estado está en un ciclo, los estados no nulos se parten en ciclos disjuntos: las órbitas. El estado inicial no elige el polinomio, pero sí en qué órbita cae el registro. Lo que mide las órbitas es el orden de : el menor con .
La órbita de mide exactamente el orden. Sus estados son los , y vuelve a en el primer con módulo , que es el primero con .
El largo de toda otra órbita divide al orden. Después de ciclos cualquier estado se multiplicó por : volvió. Su órbita pudo haberse cerrado antes, en un divisor de .
Con irreducible, todas miden lo mismo. Un estado vuelve en ciclos si divide a . Como tiene grado menor que , no lo divide, y un irreducible que no divide a un factor divide al otro: , y es múltiplo del orden, para todo estado.
Los ocho polinomios de grado 4 con término independiente, simulados estado por estado:
| g(X) | factores | orden | órbitas |
|---|---|---|---|
| irreducible | 15 | 15 | |
| irreducible | 15 | 15 | |
| (1 + X)(1 + X + X³) | 7 | 7 + 7 + 1 | |
| (1 + X)(1 + X² + X³) | 7 | 7 + 7 + 1 | |
| (1 + X + X²)² | 6 | 6 + 6 + 3 | |
| (1 + X)²(1 + X + X²) | 6 | 6 + 3 + 3 + 2 + 1 | |
| irreducible | 5 | 5 + 5 + 5 | |
| (1 + X)⁴ | 4 | 4 + 4 + 4 + 2 + 1 |
En las ocho filas la órbita más larga es el orden, y las demás lo dividen. Con un reducible, el período sí depende del estado inicial: da 4 ciclos desde , 2 desde y 1 desde , que se transforma en sí mismo.
Para recorrer los estados no nulos en una sola órbita, el orden tiene que ser . Un reducible no llega: en la tabla, los cinco reducibles tienen orden 7 o menos. Y la tabla tiene un irreducible que tampoco llega.
no tiene factores, pero : su orden es 5, y los quince estados se reparten en tres órbitas de cinco. La condición que hace falta tiene nombre: un polinomio primitivo de grado es un irreducible de orden .
Es la misma distinción que separa, en GF(2⁴), un cuerpo de un cuerpo que recorre entero. Con ese mismo polinomio, el ciclo de α se cerraba en el paso cinco sobre , y diez elementos quedaban afuera. En el registro, la órbita de son esos cinco: , , , , . Los diez de afuera no se pierden: son las otras dos órbitas, la de y la de . Cada una es la primera multiplicada por un elemento fijo, y , porque un ciclo multiplica por cualquiera sea el estado.
Arranca en , que es irreducible: apostá antes de mover. Después pasá a y compará la autocorrelación de su única órbita con la de una órbita de cinco. Y probá , que es reducible: mirá qué valores toma la autocorrelación de su órbita de siete. La sección que sigue explica por qué.
La salida de un LFSR de etapas es de longitud máxima, una m-secuencia, si su período es . Por la sección anterior, pasa exactamente cuando es primitivo, y entonces pasa desde cualquier estado no nulo. Con desde , un período es
Tiene tres propiedades, y las tres salen de que el estado recorre todos los no nulos una vez por período.
Balance. Cada bit de salida es el de un estado, y en un período pasan los estados no nulos. De ellos, tienen un uno arriba y un cero: falta el nulo. En , 8 unos y 7 ceros.
Ventana. Los bits que salen a partir del ciclo los decide el estado en el ciclo , y como la cuenta es lineal y sin pérdida, también lo determinan: con , los quince estados dan quince ventanas distintas. Deslizando una ventana de bits sobre un período aparece cada -tupla no nula exactamente una vez, y nunca la nula.
Autocorrelación de dos valores. Con , que lleva el 0 a y el 1 a , la autocorrelación cíclica es
con los índices módulo . El segundo valor pide prueba.
Paso 1: correlar es contar diferencias. El producto vale donde y su versión girada coinciden y donde difieren. Si difieren en lugares, , y es el peso de la suma de con su giro.
Paso 2: la suma es otro giro. El registro es lineal: la salida desde la suma de dos estados es la suma de las salidas. Con una sola órbita, las salidas desde los estados no nulos son los giros de . La suma de dos giros distintos es la salida desde un estado no nulo, o sea otro giro de .
Paso 3: todo giro pesa lo mismo. Por el balance, , y para todo .
Medido sobre la salida desde de los siete primitivos de la tabla de la sección 08, de grado 2 a 8, con de 3 a 255: en cada uno de los desplazamientos no nulos, y el balance da unos en los siete. Cuanto más largo el período, más se parece a una delta, y de ahí el nombre de secuencia pseudoaleatoria: un receptor que corre una réplica local encuentra el sincronismo en el único pico. Sumada módulo 2 a un flujo de datos, rompe las corridas largas de símbolos iguales, y sumarla otra vez la saca.
Sin primitivo, la forma se rompe. La órbita de en sale , y vale : tres valores. Pero la recíproca no vale. La órbita de en sale , de período 7, y su autocorrelación es en los seis desplazamientos: dos valores, en un registro que no es de longitud máxima. Es que , y esa salida es el complemento de la m-secuencia de , que tiene tres etapas: el complemento no cambia ninguna coincidencia. Lo que delata al registro de cuatro es la ventana: sobre esos siete bits aparecen 7 de las 15 cuaternas no nulas. Dos valores dicen que hay una m-secuencia; el período y la ventana dicen de qué largo.
Un primitivo de grado , con , hace tres cosas que son la misma.
1. Genera el Hamming cíclico . Su matriz de paridad tiene por columnas , que por la sección 02 son, en orden, los estados del LFSR arrancado en .
2. Su dual es el símplex , en el que las palabras no nulas pesan todas .
3. Las palabras no nulas de ese símplex son los giros de la m-secuencia del LFSR con el mismo . La m-secuencia cumple su recurrencia en forma cíclica, porque su período es , y para todo módulo es justamente
la condición de palabra del cíclico con polinomio de paridad . El dual de ese código lo genera el recíproco de su , que es otra vez: el Hamming.
Medido con : los 15 giros de más la palabra nula son 16 palabras distintas, todas en el dual del Hamming (15,11), que tiene 16; las 15 no nulas pesan 8. Con , los 7 giros de y la nula son el dual del (7,4), con las 7 no nulas de peso 4.
Cuál es importa. La m-secuencia de es palabra del cíclico de paridad , no del de paridad : ése contiene la m-secuencia de , que es la misma leída al revés. Son los dos símplex de largo 15, y los dos generadores con que aparecen con en el catálogo de largo 15.
El mismo polinomio resuelve dos problemas que no parecían relacionados: un código que corrige un error a cualquier largo, y una secuencia de período máximo. El circuito es, en los dos casos, un registro de etapas. En la Unidad 6 el registro cambia de papel: dada una secuencia de síndromes, buscar el LFSR más corto que la genera es el algoritmo de Berlekamp-Massey.
Un LFSR de etapas son biestables y una compuerta XOR por cada coeficiente intermedio no nulo de . Los primitivos de uso corriente:
| p | polinomio de conexión | período | compuertas |
|---|---|---|---|
| 2 | 3 | 1 | |
| 3 | 7 | 1 | |
| 4 | 15 | 1 | |
| 5 | 31 | 1 | |
| 6 | 63 | 1 | |
| 7 | 127 | 1 | |
| 8 | 255 | 3 |
Un trinomio primitivo, , deja el generador en biestables y una sola compuerta. No siempre hay uno: probados todos los trinomios de grado 2 a 30, en nueve grados ninguno es primitivo, el 8, 12, 13, 14, 16, 19, 24, 26 y 27. En el grado 8 no hay ni siquiera un trinomio irreducible. Con cuatro términos nunca hay irreducible, así que el siguiente candidato es un pentanomio, con tres compuertas: es lo que trae la fila del grado 8. Medido grado por grado, los nueve tienen al menos un pentanomio primitivo.
El costo crece con y el período con : con 32 etapas, bits antes de repetir.