En la teoría de la codificación , el código de repetición es uno de los códigos de corrección de errores más básicos . Para transmitir un mensaje a través de un canal ruidoso que pueda dañar la transmisión en algunos lugares, la idea del código de repetición es simplemente repetir el mensaje varias veces. La esperanza es que el canal corrompa solo una minoría de estas repeticiones. De esta manera, el receptor notará que ocurrió un error de transmisión ya que el flujo de datos recibido no es la repetición de un solo mensaje y, además, el receptor puede recuperar el mensaje original mirando el mensaje recibido en el flujo de datos que ocurre con mayor frecuencia.
Debido al mal funcionamiento de corrección de errores y la baja relación entre los símbolos de información y los símbolos realmente transmitidos, en la mayoría de los casos se prefieren otros códigos de corrección de errores . El principal atractivo del código de repetición es la facilidad de implementación.
Parámetros de código
En el caso de un código de repetición binario, existen dos palabras de código, todos unos y todos ceros, que tienen una longitud de . Por lo tanto, la distancia mínima de Hamming 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á hasta errores en cualquier palabra de código).
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 ( n , 1) - código de Hamming .
Ejemplo
Considere un código de repetición binario de longitud 3. El usuario desea transmitir los bits de información 101
. Luego, la codificación asigna cada bit a la palabra de código de todos unos o todos los ceros, por lo que obtenemos el 111 000 111
, que se transmitirá.
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. Eso nos lleva a 100
los bits de información decodificados, porque en la primera y segunda palabra de código se produjeron menos de dos errores, por lo que la mayoría de los bits son correctos. Pero en la tercera palabra de código, dos bits están dañados, lo que da como resultado un bit de información erróneo, ya que dos errores se encuentran por encima de la capacidad de corrección de errores.
Aplicaciones
A pesar de su bajo rendimiento como códigos independientes, el uso en esquemas de codificación concatenados decodificados iterativamente como 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 código se puede ajustar automáticamente a la capacidad variable del canal , enviando más o menos información de paridad según se requiera para superar el ruido del canal, y es el único código conocido para canales sin borrado . Los códigos adaptativos prácticos para canales de borrado se han inventado recientemente y se conocen como códigos fuente .
Algunos UART , como los que se utilizan en el protocolo FlexRay , utilizan un filtro mayoritario para ignorar los picos breves de ruido. Este filtro de rechazo de picos puede verse como una especie de decodificador de repetición.