Emezeta.com

Códigos de redundancia cíclica


Los códigos de redundancia cíclica (CRC) son un potente sistema -muy usado en comunicaciones y en dispositivos de hardware- para detectar si la información está corrupta (dañada).

Principalmente, estos códigos CRC -también llamados códigos polinómicos- usan un polinomio generador G(x) de grado r con n bits de datos binarios (coeficientes del polinomio de orden n-1).

Datos: 10111
Polinomio: x4 + x2 + x1 + x0

A estos bits de datos se le añaden r bits de redundancia, de forma que el polinomio resultante sea divisible por el polinomio generador. El receptor verificará si el polinomio recibido es divisible por G(X). Si no lo es, habrá un error en la transmisión.

Los polinomios generadores más usados son:

  • CRC-12: x12 + x11 + x3 + x2 + x + 1. Usado para transmitir flujos de 6 bits, junto a otros 12 de redundancia.
  • CRC-16: x16 + x15 + x2 + 1. Para flujos de 8 bits, con 16 de redundancia. Usado en USA, principalmente.
  • CRC-CCITT: x16 + x12 + x5 + 1. Para flujos de 8 bits, con 16 de redundancia. Usado en Europa, principalmente.
  • CRC-32: x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1. Da una protección extra sobre la que dan los CRC de 16 bits, que suelen dar la suficiente. Se emplea por el comité de estándares de redes locales (IEEE-802) y en algunas aplicaciones del Departamento de Defensa de USA.

Para los adictos a estos temas, también puede parecerles interesante el código hamming, codificación de datos en red o el sistema Carrier Sense Multiple Access with Collision Detection (CSMA/CD).

Vía Wikipedia.