Ejercicios 4 y 5 de la clase práctica de la Unidad 5 · el codificador del (15,5) bit por bit, el síndrome como resto, y el ciclo de más que gira la palabra
Los dos ejercicios trabajan sobre el código cíclico (15,5) de la práctica, el de polinomio generador
con polinomio de paridad , distancia mínima 7 y . Los dos usan el mismo circuito, un registro de desplazamiento de diez etapas que divide por . En el 4 codifica. En el 5 calcula el síndrome, y después sigue andando sin entrada: cada ciclo de más es el síndrome de la palabra girada una posición. Los vectores van con la posición 0 a la izquierda.
El enunciado, textual: «Para el código (15,5), con el registro de etapas y el mensaje ,
Antes de resolver: qué se entrega. Cuatro cosas de forma distinta. Un orden: los cinco bits del mensaje en fila. Una tabla de seis renglones, el estado inicial y uno por ciclo, con diez bits cada uno. Una división de polinomios cuyo resto tiene que dar el último renglón. Y un vector de quince bits, la palabra de código.
Lo primero es leer bien el mensaje. El vector tiene la posición 0 a la izquierda: , , , , , y entonces
Codificar en forma sistemática es una sola división. Se corre el mensaje lugares hacia los grados altos y se lo divide por :
Como en GF(2) sumar y restar son lo mismo, : es un múltiplo de de grado menor que 15, y las palabras del código son exactamente esos múltiplos. Ésa es la palabra:
con la forma sistemática del apunte: la paridad en las diez primeras posiciones y el mensaje intacto en las cinco últimas.
El circuito hace esa división bit por bit. Tiene diez etapas, , y en cada ciclo de reloj entra un bit del mensaje. La realimentación es la entrada más la última etapa, y vuelve a cada etapa cuyo coeficiente en no es cero:
Para este las tomas están en , , , , y . Cuando , el registro desplazado recibe sin su , o sea ; cuando , sólo se desplaza.
Primero pensar: por qué entra primero . La división larga arranca por el término de mayor grado, y el registro es una división larga. Hay una forma más precisa de decirlo: después de cada ciclo, el registro guarda el resto de por lo que entró hasta ahí, leído con el primer bit en el grado más alto. Si hasta ahora entró y entra el bit , lo entrado pasa a ser . El registro hace exactamente eso. Desplazar es multiplicar por . El bit que se cae por la punta vale , la entrada aporta , y su suma es . Como módulo , reducirlo es sumar cuando .
Por eso la entrada se suma en el punto de realimentación y no en : ahí ya viene multiplicada por . Y por eso el orden importa: el último bit en entrar queda con grado 0, así que el mensaje tiene que entrar desde hasta , es decir 0, 1, 1, 0, 1.
Después escribir, ciclo a ciclo.
Cada renglón se puede controlar contra la división del prefijo. Calculados aparte, los restos de por , , , y dan los cinco estados de la traza, uno por uno.
El punto 3: la división escrita. . Se va sumando para matar el término de mayor grado, hasta bajar de grado 10:
El cociente es y el resto, escrito como vector de diez posiciones, : el último renglón de la traza.
Con primero, el registro termina en y la palabra tiene síndrome nulo. Volvé a cero y probá el orden al revés con el mismo mensaje: el registro termina en otra cosa, y la palabra que se arma con eso no es del código. Después probá el orden al revés con un mensaje capicúa, como .
1. Los bits entran empezando por el de mayor orden, : en el orden , que para este mensaje es 0, 1, 1, 0, 1.
2. El registro, ciclo a ciclo:
| Ciclo | Entrada | f | Registro b₀…b₉ |
|---|---|---|---|
| 0 | — | — | 0000000000 |
| 1 | 0 | 0000000000 | |
| 2 | 1 | 1110110010 | |
| 3 | 1 | 1001101011 | |
| 4 | 1 | 1010000111 | |
| 5 | 0 | 0101000011 |
3. El registro termina en . La división de la sección 03 da el mismo resto, con cociente .
4. La paridad adelante y el mensaje atrás:
o, como polinomio,
Control final: dividido por , da resto cero, con el mismo cociente .
El enunciado, textual: «Se transmite la palabra del ejercicio anterior y el canal introduce un error en la posición , de modo que se recibe
Antes de resolver: qué se entrega. Tres vectores de diez bits que salen del registro, ; dos más que salen de dividir de nuevo; y el nombre de un teorema. Conviene leer también contra la palabra del ejercicio 4: difiere sólo en la posición 12, donde tenía un 1. Entonces
El síndrome es un resto, y sólo ve el error. Si , con el patrón de error, y divide a ,
Es el síndrome de siempre, calculado de otra manera: el síndrome cíclico sale del mismo registro del codificador, alimentado con la palabra recibida. Con una diferencia de cableado: entra por , desde , y no en el punto de realimentación. Por eso tarda quince ciclos y no cinco:
El teorema 5 del apunte. Si es el síndrome de , el de su desplazamiento cíclico es
y, aplicado veces,
La prueba entra en un renglón. Girar es , y es múltiplo de : módulo , girar es multiplicar por . Y reducido es lo que hace el registro en un ciclo con la entrada cortada.
Primero pensar. No hace falta dividir : el error es , así que . Y como girada sigue siendo palabra, es una palabra más un error en , y , una palabra más un error en . Todo el ejercicio se reduce a los restos de las potencias altas de .
La tabla de restos. Se arma de a un renglón: cada uno es el anterior multiplicado por , y si aparece un se lo cambia por .
| j | Cómo sale | Rg{Xj} | Vector |
|---|---|---|---|
| 10 | sin | 1110110010 | |
| 11 | por | 0111011001 | |
| 12 | por , reducido | 1101011110 | |
| 13 | por | 0110101111 | |
| 14 | por , reducido | 1101100101 |
El renglón 12, desarrollado: el 11 por da un , y se lo cambia.
Punto 1. Por el error, , el renglón 12: . Por la palabra recibida, que es la cuenta que pide el enunciado, la parte de grado menor que 10 queda como está y cada potencia alta se cambia por su renglón: tiene abajo y arriba, así que
Los dos caminos dan lo mismo porque es palabra; si el ejercicio 4 hubiera salido mal, acá no coincidirían.
Punto 2. Un ciclo con la entrada cortada. En , la última etapa vale 0: no hay realimentación, el registro sólo se desplaza, y ya tiene grado menor que 10. Queda . En la última etapa vale 1: desplazado da con un que se cae, y sumando las tomas,
Son los renglones 13 y 14 de la tabla, como tenía que ser: el error se corrió a y a .
Punto 3. Ahora las palabras giradas, cada una dividida desde cero con la misma tabla. Girar una posición manda cada bit al siguiente y el a la posición 0:
En cada suma, el primer término es la parte baja de la palabra girada y los otros, los renglones de sus potencias altas. Las cuentas usan bits distintos de las del punto 2, y llegan a los mismos vectores.
Seguí de largo después del segundo ciclo de más. En el tercero el registro queda en : el error dio la vuelta hasta la posición 0, y desde ahí el registro muestra el error tal cual mientras éste recorre la paridad. Probá también con dos errores separados, o con tres juntos.
1. vale , el polinomio . El circuito de síndrome llega ahí en quince ciclos.
2. Con dos ciclos más del registro, sin entrada: y .
3. Dividiendo desde cero, da y da .
4. Coinciden. Es el teorema 5: el síndrome del desplazamiento cíclico de la palabra recibida es el resto de módulo . Dicho en circuito: para recorrer los quince giros de alcanza con quince ciclos de reloj del mismo registro, sin ninguna división nueva. Comprobado sobre los vectores de quince bits, el síndrome girado y el síndrome de la palabra girada coinciden en todos.
La tabla de restos. Con los restos de para , cualquier resto módulo es la parte baja más una suma de renglones: sirvió para la paridad del ejercicio 4 (renglones 10, 12 y 13), para el síndrome y para las dos palabras giradas. Es, además, la parte de paridad de la matriz generadora sistemática: la fila de es seguido de un 1 en la posición .
El registro guarda el resto del prefijo. Para trazar un codificador no hace falta simular a ciegas: el estado después del ciclo es , con los bits que entraron, el primero en el grado más alto. Cualquier renglón se controla solo.
Cuándo conviene el otro codificador. En el (15,5) hay más paridad que mensaje, . El apunte da también un codificador de etapas, cableado según en vez de , y en ese caso es el de registro más corto: cinco etapas en lugar de diez.
Seguir girando es decodificar. Con dos ciclos de más el error está en la posición 14, la última, que es la que examina el decodificador de Meggitt en cada ciclo. Con tres, el registro vale , de peso 1: el error cayó en la ventana de paridad, y el síndrome es el error. Es la captura de errores, y no pide ningún circuito nuevo.
Cuál es la posición 0. Los vectores se escriben con la posición 0 a la izquierda, y el polinomio, de grado creciente. es , no .
En qué orden entra el mensaje. Primero . Al revés, el registro calcula la paridad del mensaje dado vuelta: con termina en , y la palabra que se arma con esa paridad tiene síndrome . Lo traicionero es que el error no siempre se ve. Con un mensaje capicúa los dos órdenes dan lo mismo: de los 32 mensajes, en 8 el orden al revés arma una palabra del código. Para probar el circuito hace falta un mensaje que no sea capicúa.
Cuál es el bit de mayor orden del registro. Es , el de la derecha cuando el registro se escribe . La realimentación es , no , y desplazar mueve los bits hacia la derecha. En el ciclo 4 entra un 0 y aun así hay realimentación, porque .
El ciclo que no hace nada también va. deja el registro en cero, pero la tabla tiene cinco ciclos, no cuatro.
Codificador y síndrome no se alimentan igual. El codificador suma la entrada en la realimentación, que equivale a multiplicarla por , y termina en ciclos. El circuito de síndrome la mete por y termina en . En la palabra del ejercicio 5 los once primeros ciclos sólo desplazan: la primera realimentación llega en el ciclo 12.