En teoría de la codificación , el código de repetición es uno de los códigos de corrección de errores lineales más básicos . Para transmitir un mensaje a través de un canal ruidoso que puede corromper la transmisión en algunos puntos, la idea del código de repetición es simplemente repetir el mensaje varias veces. Se espera que el canal corrompa solo una minoría de estas repeticiones. De esta manera, el receptor detectará que se ha producido un error de transmisión, ya que el flujo de datos recibido no es la repetición de un único mensaje. Además, el receptor puede recuperar el mensaje original buscando el mensaje que aparece con mayor frecuencia en el flujo de datos recibido.
Debido al deficiente rendimiento de corrección de errores, sumado a la baja tasa de codificación (relación entre los símbolos de información útil y los símbolos transmitidos), en la mayoría de los casos se prefieren otros códigos de corrección de errores . La principal ventaja del código de repetición es su facilidad de implementación.
Parámetros del código
En el caso de un código de repetición binario, existen dos palabras de código: todas unas y todas ceros, que tienen una longitud dePor lo tanto, la distancia de Hamming mínima del código es igual a su longitud.Esto le da al código de repetición una capacidad de corrección de errores de(es decir, corregirá hastaerrores en cualquier palabra clave).
Si la longitud de un código de repetición binario es impar, entonces es un código perfecto . [ 1 ] El código de repetición binario de longitud n es equivalente al código de Hamming ( n , 1) . Un código BCH ( n , 1) también es un código de repetición.
Ejemplo
Consideremos un código de repetición binario de longitud 3. El usuario quiere transmitir los bits de información 101. Entonces, la codificación asigna cada bit a la palabra de código de todos unos o de todos ceros, por lo que obtenemos 111 000 111, que será transmitido.
Digamos que tres errores corrompen los bits transmitidos y la secuencia recibida es 111 010 100. La decodificación generalmente se realiza mediante una decisión de mayoría simple para cada palabra de código. Esto nos lleva a 100como los bits de información decodificados, porque en la primera y segunda palabra de código ocurrieron menos de dos errores, por lo que la mayoría de los bits son correctos. Pero en la tercera palabra de código se corrompen dos bits, lo que resulta en un bit de información erróneo, ya que dos errores superan la capacidad de corrección de errores.
Aplicaciones
A pesar de su bajo rendimiento como códigos independientes, su uso en esquemas de codificación concatenada decodificada iterativamente, similares a los códigos Turbo , como los códigos de repetición-acumulación (RA) y acumulación-repetición-acumulación (ARA), permite un rendimiento de corrección de errores sorprendentemente bueno.
Los códigos de repetición son uno de los pocos códigos conocidos cuya tasa de codificación se puede ajustar automáticamente a la capacidad variable del canal , enviando más o menos información de paridad según sea necesario para superar el ruido del canal, y es el único código de este tipo conocido para canales sin borrado . Los códigos adaptativos prácticos para canales con borrado se han inventado recientemente y se conocen como códigos fuente .
Algunos UART , como los utilizados en el protocolo FlexRay , emplean un filtro de mayoría para ignorar picos de ruido breves. Este filtro de rechazo de picos puede considerarse una especie de decodificador de repetición.
Véase también
Referencias
- Teoría de la codificación
- Detección y corrección de errores