Si enviamos cualquier palabra, una palabra alterada puede parecer perfectamente válida. Un código reserva solo algunas palabras: separarlas permite detectar cambios y, a veces, reconstruir lo enviado. Empezaremos con tres bits y llegaremos a un ejemplo de decodificación con polinomios, haciendo las cuentas en un cuerpo finito.
Si necesitas repasar:
1. Un código reserva palabras y Hamming cuenta posiciones diferentes
Con q símbolos y longitud n hay qⁿ palabras posibles. El código C elige un subconjunto y asigna un mensaje a cada palabra elegida. Las demás palabras no representan directamente mensajes. Usar menos posibilidades introduce redundancia.
La distancia de Hamming d(u,v) cuenta posiciones donde u y v difieren. No resta sus valores como números enteros. El peso wt(u) cuenta posiciones no nulas; sobre un cuerpo, d(u,v)=wt(u−v). En códigos no binarios se cuentan símbolos, no necesariamente bits.
Comparar bit a bit
u=01011 y v=01101.
Alinear
Las posiciones uno y dos coinciden.
Marcar
Las posiciones tres y cuatro cambian; la quinta coincide.
Contar
Hay dos diferencias: d(u,v)=2.
El tamaño de la resta entre los números binarios no interviene.
Las palabras deben tener la misma longitud.
Reservar solo dos palabras
C={000,111}.
Universo
Hay 2³=8 palabras de tres bits.Código
Solo dos son válidas: representan un bit de mensaje.
Recibir 010
No pertenece a C; detectamos que algo cambió si se transmitió una palabra válida.
La redundancia deja huecos entre palabras válidas.
Una alteración de 000 a 111 no dejaría una palabra inválida.
2. La distancia mínima determina un radio garantizado
Para al menos dos palabras válidas, d es la menor distancia entre dos distintas. Se detectan hasta d−1 errores: menos de d cambios no convierten una palabra válida en otra. Para corregir de forma única hasta t errores se exige 2t<d.
La razón es triangular. Si r estuviera a distancia como máximo t de c y de c′, tendríamos d(c,c′)≤d(c,r)+d(r,c′)≤2t<d, imposible. Por eso el radio garantizado es .
Repetición de tres bits
Entre 000 y 111 hay distancia tres.
Detectar
Uno o dos cambios no producen la otra palabra válida.
Corregir
t=1 cumple 2<3; las bolas de radio uno no se tocan.
Fuera del radio
Si 000 sufre dos cambios y llega 110, la mayoría elige 111 y falla.
Detectar dos cambios no significa corregirlos dos.
La detección por pertenencia y la decisión de un decodificador son operaciones distintas.
Una distancia par
Un código tiene distancia mínima cuatro.
Un error
2·1<4: corrección garantizada.Dos errores
2·2=4: no hay garantía uniforme.Detección
Se detectan hasta tres cambios por pertenencia al código.
El radio garantizado es uno, no dos.
Fuera de la garantía algunos patrones pueden seguir siendo corregibles.
3. Un código lineal convierte mensajes en combinaciones de columnas
Un cuerpo finito permite sumar, multiplicar y dividir por elementos no nulos. Un código lineal es un subespacio de
ⁿ de dimensión k y contiene qᵏ palabras. Para q primo operamos módulo q. Si q es una potencia prima no prima,
no se identifica con enteros módulo q.
Usamos mensajes columna y G de tamaño n×k, con rango k: c=Gm. Una matriz H de tamaño (n−k)×n y rango n−k describe C=ker H.
En un código lineal, la distancia mínima es el menor peso no nulo: la diferencia de dos palabras vuelve al código.
Generar repetición
En F₂, G es la columna (1,1,1).
Mensaje cero
G·0=(0,0,0).Mensaje uno
G·1=(1,1,1).Control
da HG=0 porque 1+1=0 en F₂.
Dimensión uno, longitud tres y dos palabras.
La misma G sobre los reales no sería este código binario.
Una división modular
En F₅ queremos resolver 2a=1.
Buscar inverso
2·3=6≡1 módulo cinco.Multiplicar
a=3.Distinguir
En enteros módulo cuatro, dos no tiene inverso; por eso ese anillo no es F₄.
Un campo no es cualquier aritmética modular.
Las cuentas de Reed–Solomon siguientes serán en F₅.
4. El síndrome comprueba paridades, pero no conoce el error real
El síndrome depende del error, no del mensaje. Para corregir buscamos un error compatible, dentro del radio garantizado o según un criterio declarado.
Un síndrome nulo significa que r pertenece al código. Puede no haber error o puede haberse sumado una palabra válida no nula. Dos errores con el mismo síndrome difieren en una palabra del código: H(e−e′)=0.
Localizar un cambio
Usamos la H de repetición y recibimos 101.
Síndrome
Hr=(1+0,0+1)=(1,1) en F₂.Comparar columnas
Las columnas de H son (1,0), (1,1), (0,1): un error único estaría en la segunda posición.
Corregir
101+010=111.
La localización usa la hipótesis de como máximo un error.
Sin esa hipótesis también podría haberse enviado 000 y cambiado dos posiciones.
Error invisible al control
Se transmite 000 y ocurre e=111.
Recibido
r=111 es otra palabra válida.Síndrome
H111=(0,0).Conclusión
El control no detecta este error de peso tres.
Síndrome cero no prueba transmisión intacta.
No contradice la garantía de detección de hasta dos cambios.
5. Las bolas y el borrado de posiciones dan dos cotas distintas
Una bola de radio t contiene todas las palabras con hasta t posiciones cambiadas: . Si 2t<d, las bolas centradas en las palabras válidas son disjuntas.
Para Singleton, borramos d−1 posiciones fijas. Dos palabras distintas no pueden quedar iguales: entonces diferirían en menos de d posiciones.
Dos bolas llenan el cubo
Repetición binaria de longitud tres y t=1.
Volumen
V₂(3,1)=1+3=4.Centros
Dos palabras válidas dan 2·4=8.Universo
Hay ocho palabras. Las bolas son disjuntas y cubren todas.
Cada recibido tiene una palabra más cercana, pero puede no ser la transmitida.
La partición no garantiza corregir dos errores.
Aplicar Singleton
Código lineal de longitud siete y dimensión cuatro.
Redundancia
n−k=3.Cota
d≤7−4+1=4.Leer
La cota no afirma que todo código así tenga distancia cuatro.
Es una limitación de parámetros, no una construcción.
Otra cota puede ser más fuerte para un alfabeto específico.
6. Reed–Solomon envía evaluaciones de un polinomio
El mensaje son los k coeficientes de un polinomio p de grado menor que k. Se envía . Evaluar es lineal e inyectivo: un polinomio no nulo de grado menor que k no tiene k raíces distintas.
Dos mensajes distintos difieren por un polinomio de grado como máximo k−1: coinciden como mucho en k−1 posiciones.
Si solo hay borrados conocidos, cualquier k evaluaciones intactas permiten interpolar.
Codificar en cinco elementos
En F₅, n=4, k=2, puntos 0,1,2,3 y p(x)=1+2x.
Primeros
p(0)=1 y p(1)=3.Reducir
p(2)=5≡0; p(3)=7≡2.Palabra
(1,3,0,2).
Distancia mínima 4−2+1=3; corrige un error.
Las alturas del dibujo son residuos, no valores de una curva real.
Cada operación se reduce módulo cinco.
Recuperar dos coeficientes sin errores
Sabemos p(0)=1 y p(2)=0, con grado menor que dos.
Forma
p(x)=a+bx; la primera evaluación da a=1.Segunda
1+2b=0, luego 2b=4 en F₅.Resolver
Multiplicamos por tres: b=12≡2.Recuperamos 1+2x.
Dos puntos distintos fijan este polinomio lineal.
Con errores de posición desconocida no basta interpolar dos valores cualquiera.
7. Berlekamp–Welch oculta los errores con un localizador
Para corregir hasta t errores con n≥k+2t, buscamos un polinomio E no nulo de grado a lo sumo t y Q de grado menor que k+t, tales que en cada posición. Si E se anula donde hubo error y Q=pE, las ecuaciones se cumplen. Son lineales en los coeficientes desconocidos.
Toda solución no nula tiene E≠0: si E fuera cero, Q tendría n raíces y grado menor que n. Además Q−pE tiene grado menor que k+t y al menos n−t≥k+t raíces intactas; por eso es cero. Dividimos Q/E, verificamos grado menor que k y distancia a r como máximo t.
Fuera de las hipótesis, la verificación puede rechazar.
Un error en la segunda evaluación
Se recibe r=(1,4,0,2) en lugar de (1,3,0,2).
Localizar
El punto erróneo es uno.
E(x)=x−1.Multiplicar
Q=(1+2x)(x−1)=2x²+4x+4 en F₅.Comprobar
E en 0,1,2,3 vale 4,0,1,2. Q vale 4,0,0,4, igual a r·E componente a componente.
El factor cero elimina la evaluación equivocada de las ecuaciones.
El decodificador busca E y Q; aquí mostramos la solución para entenderla.
Terminar y verificar
Tenemos E=x−1 y Q=2x²+4x+4.
División
Q/E=1+2x, sin resto en F₅.Grado
Es uno, menor que k=2.Reevaluar
(1,3,0,2) difiere de r en una posición; cumple t=1.
La palabra reconstruida pasa ambas comprobaciones.
La cota es floor((n−k)/2), no un redondeo hacia arriba.
8. La estructura cíclica permite construir códigos con polinomios
Asociamos (c₀,…,cₙ₋₁) a c₀+c₁x+…+cₙ₋₁xⁿ⁻¹. Multiplicar por x módulo xⁿ−1 gira las posiciones. Un código lineal cíclico es un ideal de [x]/(xⁿ−1), generado por un divisor mónico g de xⁿ−1; su dimensión es n−grado(g).
En BCH se elige n coprimo con q y una raíz n-ésima primitiva α en una extensión. Exigir que g tenga como raíces αᵇ,…,αᵇ⁺ᵟ⁻² da distancia mínima al menos δ. Las raíces consecutivas y el cuerpo son hipótesis concretas. Esta es una construcción por raíces; la presentación por evaluaciones de Reed–Solomon tiene otro punto de partida.
Un generador binario
n=7 y g=x³+x+1 en F₂.
Divisor
g·(x⁴+x²+x+1)=x⁷+1=x⁷−1 en F₂.Mensajes
Polinomios de grado menor que cuatro: 2⁴=16.Dimensión
7−3=4.Al enumerar los quince productos no nulos, el menor peso es tres.
Obtenemos un código [7,4,3] binario.
La dimensión no basta para deducir la distancia: aquí se comprueba por enumeración finita.
Ver la rotación
La palabra de g es (1,1,0,1,0,0,0).
Multiplicar
xg=x⁴+x²+x.Palabra
(0,1,1,0,1,0,0), aún múltiplo de g.
Última posición
Si un término llega a x⁷, se reemplaza por uno: vuelve al inicio.
La reducción módulo x⁷−1 produce el giro circular.
No es desplazar y descartar la última coordenada.
9. La garantía uniforme y el comportamiento bajo ruido se estudian por separado
La distancia trata el peor patrón con un número acotado de cambios. Un modelo probabilístico asigna probabilidades a patrones y permite calcular una tasa de error promedio. El decodificador y la regla de decisión también deben especificarse.
Para repetición triple con cambios independientes de probabilidad p, mayoría falla con dos o tres cambios: 3p²(1−p)+p³. La garantía de un error es absoluta bajo ese límite; la fórmula probabilística admite cualquier cantidad de cambios y calcula cuánto pesan los fallos.
Dos relatos para un mismo recibido
Llega 110 al código de repetición.
Si se envió 111
Hubo un cambio y mayoría acierta.
Si se envió 000
Hubo dos cambios y mayoría falla.
Decisión
La palabra recibida sola no permite distinguir esos relatos con certeza.
Decodificar no revela retrospectivamente el error real.
El modelo de ruido puede hacer un relato más probable, no imposible el otro.
Garantía frente a frecuencia
Con p=1/10, la mayoría tiene error 0,028.
Garantía
Corrige todos los patrones de peso cero o uno.
Probabilidad
Los patrones de peso dos o tres suman 0,028.
Tasa
Solo transmite un bit por tres posiciones: R=1/3.
Distancia, error y tasa son tres números diferentes.
Comparar códigos exige declarar cuál de ellos se quiere mejorar.
Ahora lo resolvemos de principio a fin.
EJEMPLO RESUELTO 1
Distancia concreta
Calcula la distancia entre 10110 y 10001.
Alinear
Escribimos 10110 y 10001 con cinco posiciones.
Primera y segunda
Uno coincide con uno; cero con cero.
Tercera
Uno frente a cero: una diferencia.
Cuarta
Uno frente a cero: segunda diferencia.
Quinta
Cero frente a uno: tercera diferencia; d=3.Comprobar
Hamming cuenta posiciones y no el valor decimal de una resta.
La distancia es 3.
Las posiciones 1 y 2 coinciden.
EJEMPLO RESUELTO 2
Repetición triple
Decodifica 101 en el código {000,111} por mínima distancia.
Código
Solo 000 y 111 son palabras válidas.
Recibido
La palabra es 101.
Distancia a cero
Difieren primera y tercera: d(101,000)=2.Distancia a uno
Solo difiere la segunda: d(101,111)=1.Elegir
La mínima distancia selecciona 111.
Garantía
Es correcta si hubo como máximo un error; con dos o más no sabemos qué se envió.
Se decodifica como 111.
Está dentro del radio de corrección de un error.
Los símbolos que hemos usado
- F_q
- Cuerpo finito de q elementos, con q potencia de primo.
- Código C⊆F_qⁿ
- Conjunto de palabras permitidas de longitud n.
- Peso / distancia de Hamming
- Número de posiciones no nulas / número de posiciones diferentes.
- [n,k,d]_q
- Longitud, dimensión lineal y distancia mínima de un código sobre F_q.
- G / H
- Matriz generadora / matriz de comprobación de paridad.
- Síndrome Hr
- Comprobaciones de paridad de la palabra recibida r.
- Decodificación
- Elección del mensaje o palabra original estimada a partir de la recibida.
Ahora te toca a ti.
Tienes cinco ejercicios. Inténtalos; las pistas te ayudan si te atascas.
Practicar este tema →