Unidad 4 · El código producto frente a las ráfagas
Un código producto cruza dos códigos en un arreglo, uno a lo largo de las filas y otro a lo largo de las columnas, y suele presentarse como resistente a las ráfagas. Lo es, pero no por ser producto. La ráfaga la corrige el orden: el orden en que los símbolos salen al canal y el orden en que se decodifican. Con el Hamming en las filas y la repetición en las columnas, el mismo código transmitido fila por fila corrige toda ráfaga de hasta 15 símbolos; columna por columna, de hasta 7. Con el mismo decodificador en los dos casos, 15 contra 5: el triple.
Un código producto es el conjunto de arreglos de filas por columnas en los que cada fila es una palabra de código de y cada columna una de . Acá es el código de Hamming , con su capacidad de corrección, la cantidad de errores que corrige estén donde estén, de . es la repetición : sus dos palabras son 00000 y 11111, se decodifica por mayoría y corrige . El arreglo tiene cinco filas de siete: , y .
Se decodifica por etapas: cada fila con el decodificador por síndrome del , cada columna por mayoría, y una de las dos cosas primero. Contra errores sueltos, la garantía de esa decodificación es , y lo que corrige de verdad está en el producto corrige más de lo que promete. Acá los errores no vienen sueltos.
Una ráfaga de largo es un patrón de error cuyos errores caen todos dentro de símbolos consecutivos del canal: el primero y el último están mal, y los del medio pueden estar mal o no. Cuando están todos mal, la ráfaga es sólida. Y qué símbolos son consecutivos depende de cómo se lea el arreglo para mandarlo. Fila por fila, el de la fila y la columna sale en el instante ; columna por columna, en el .
Fila por fila, dos símbolos de una misma columna salen separados por instantes. Una ráfaga de símbolos toca cada columna a lo sumo veces, y si eso no pasa de , la mayoría de cada columna lo corrige:
Los huecos no cambian nada: sacarle errores a una ráfaga sólo puede bajar la cuenta de cada columna. La garantía vale para cualquier patrón que quepa en 14 símbolos seguidos, no sólo para el sólido. Lo que sí pide es un orden de decodificación: primero las columnas, que ven la ráfaga repartida. Las filas la ven entera, con hasta siete errores seguidos en una sola.
Es lo que hace un intercalador. Las siete columnas son siete palabras de la repetición, y leer el arreglo por filas las intercala con profundidad : la regla del intercalador de bloque, , con es la misma cota.
Arranca columna por columna y con las filas primero, que es la pareja que corresponde a ese orden, con una ráfaga de 5 que se corrige en sus 31 posiciones. Las cuentas al costado de cada arreglo son los errores de cada fila y de cada columna, y se marcan en rojo cuando superan lo que corrige el código que decodifica primero. Agrandá la ráfaga hacia 14, que es la cota de la sección anterior, y mirá dónde deja de corregirse. Después cambiá el orden de transmisión. Como el código es lineal, alcanza con mirar el patrón de error: el arreglo que se mandó puede ser el nulo.
Columna por columna, todo se da vuelta. Dos símbolos de una misma fila salen separados por instantes, y la ráfaga cae a lo largo de una columna y de costado sobre las filas. Cada fila recibe a lo sumo errores, y las filas corrigen uno:
Y ahora tienen que ir primero las filas. La cota no vale en este orden, con ningún decodificador: una ráfaga sólida de 8, decodificando primero las filas, no se corrige en ninguna de sus 28 posiciones, y decodificando primero las columnas la de 6 ya falla en 6 de sus 30. Las dos cotas son el mismo argumento con los papeles cambiados. La ráfaga la corrige el código que la ve atravesada, decodificando primero, y la cota es la separación entre dos símbolos suyos en el canal por lo que ese código corrige.
Se decodificaron todas las ráfagas sólidas que caben en el arreglo —las posiciones de cada largo — y, aparte, todos los patrones que caben en símbolos seguidos, con huecos o sin ellos. En cada fila de la tabla, la ráfaga más larga que se corrige en todas sus posiciones:
| se transmite | primero | garantía | sólidas | cualquier patrón |
|---|---|---|---|---|
| fila por fila | columnas | 14 | 15 | 15 |
| fila por fila | filas | — | 10 | 10 |
| columna por columna | filas | 5 | 7 | 7 |
| columna por columna | columnas | — | 5 | 5 |
La última columna pone a prueba la garantía con todos los patrones, no sólo con los sólidos. Fila por fila y con las columnas primero, los 360 447 patrones que caben en 15 símbolos seguidos se corrigen todos. Con 16, la sólida falla en sus 20 posiciones, pero de todos los patrones de largo exactamente 16 fallan 20 480 de 327 680, el 6,25 %. En las cuatro combinaciones, la ráfaga sólida es el peor caso de su largo, y por eso las dos columnas coinciden.
El 15 sale de la mayoría. Con 15 símbolos hay una sola columna que recibe tres errores, y la mayoría la da vuelta entera: le deja un error a cada una de las cinco filas, y el los corrige. Con 16 son dos columnas, y cada fila queda con dos errores, a los que el decodificador del les agrega un tercero.
El 7 sale de ese mismo tercer error. Columna por columna, una ráfaga de 6 o de 7 le deja dos errores a una o dos filas; el decodificador de cada una le agrega un tercero, pero son a lo sumo dos filas malas, y ninguna columna recibe de ellas más de dos errores. Con 8 son tres filas, y alguna columna queda con tres.
Las tres comparaciones dicen lo mismo con distinta fuerza. Con el mismo decodificador, las columnas primero, 15 contra 5: el triple. Dejándole a cada orden el decodificador que le corresponde, 15 contra 7. Y las garantías, 14 contra 5.
Con el en las filas y en las columnas, y : las dos cotas valen 7, y el orden de transmisión deja de importar para el largo. Medido igual que arriba, sobre el arreglo de 7 × 7: fila por fila con las columnas primero y columna por columna con las filas primero, las dos corrigen toda ráfaga de hasta 8, sólida o con huecos. Lo que sigue importando es la pareja. Decodificando primero el código que ve la ráfaga a lo largo, en los dos órdenes, se corrigen sólo las de hasta 3.
Cuando los dos códigos son distintos, elegir el orden es elegir una de las dos cotas, o , y conviene la más grande. El producto pone los dos códigos cruzados; cuál de los dos ve la ráfaga de costado lo decide el orden. Separado del producto, ese orden es el intercalado.