CODIGOS PARA DETECCIÓN DE ERROR: DÍGITO DE CONTROL

 

En una transmisión de información, el mensaje entra en un canal de comunicación física (por ejemplo, cable) o incorporeo (por ejemplo, ondas, luz), donde puede verse sometido a interferencias o ruidos (cambios de temperatura en los soportes físicos, bajadas de tensión que los afectan, etc.) que producen un deterioro y/o pérdida de información.

Con el objeto de incrementar la integridad y confiabilidad de la información recibida, se la codifica agregandole redundancia, de manera que si el receptor recibe un mensaje alterado sea capaz de determinar que ocurrió un error (y pedir que le retransmitan la información) y/o corregir el error con la información de la que dispone.


Un ejemplo sencillo de detección


Supongamos que hay sólo dos mensajes posibles a enviar, SI y NO, que podemos enviar como SI = 1 y NO = 0, pero hay cierta probabilidad de que durante la transmisión del mensaje, éste se altere, es decir, que un 1 se cambie a 0 o un 0 se cambia a 1. Si esto ocurre, el destinatario entenderá NO cuando quisimos decir SI y viceversa

Para evitar esto, se puede codificar el mensaje duplicando la información: SI = 11 y NO = 00. De esta manera, el receptor sabe que un posible mensaje consta de dos dígitos iguales . Si se produce un error y, por ejemplo, enviamos 11 y se recibe 01, el receptor detectará inmediatamente el error porque el mensaje recibido está formado por dos dígitos distintos (pero no puede saber cuál fue el error, porque no puede determinar si es que se envió 11 y el primer 1 cambió a 0, o se envió 00 y el segundo 0 cambió a 1).


Código EAN-13.

Un ejemplo de código para detección de errores con el que nos encontramos cotidianamente son los números que forman los códigos de barras presentes en las etiquetas de diversos productos. Este código tiene por objeto asegurar la identificación única y correcta de los productos. 

La versión más habitual de este código es el EAN-13 ( European Article Number ), que consta de 13 dígitos representados por barras negras y espacios blancos que, de manera conjunta, determina un código de fácil lectura mediante un dispositivo óptico.

En el código EAN-13, los 3 primeros dígitos identifican al país que emitió el código, los 9 siguientes identifican al fabricante y al producto, y el último es un dígito de control . Para calcular el dígito de control, si los 12 primeros dígitos del código son:

d 1 d 2 d 3 d 4 d 5 d 6 d 7 d 8 d 9 d 10 d 11 d 12, se calcula la suma de los dígitos de las posiciones impares más el triple de la suma de los dígitos de las posiciones pares:

S = (d 1 + d 3 + d 5+ d 7 + d 9 + d 11 ) + 3 (d 2 + d 4 + d 6 + d 8 + d 10 + d 12 ), y se toma como d 13  al (único) dígito tal que S + d 13 es múltiplo de 10.

Debido a esta construcción, en un código EAN-13, el resultado de:

(d 1 + d 3 + d 5 + d 7 + d 9 +d 11 ) + 3 (d 2 + d 4 + d 6 + d 8 + d 10 + d 12 ) + d 13 es múltiplo de 10. Así, si un supuesto código EAN-13 no cumple esta propiedad, entonces no es un código correcto. Esto permite detectar cualquier error que esté en un solo dígito , porque si uno solo se modifica, la cuenta anterior deja de ser múltiplo de 10. (Si ocurren errores en dos o más cifras puede ser que no sean detectados, porque podría pasar que hagan que la cuenta se “compense” y siga dando múltiplo de 10.) 


Este código también permite recuperar un dígito que se haya borrado, siempre que sepamos el lugar que ocupaba, simplemente “despejando” la incógnita de la ecuación. Por ejemplo, si en el ejemplo del mural se borra el segundo dígito del código queda:

  

7X9 123456789 8 (donde X representa el dígito borrado), y la única posibilidad para que el número (7+9+2+4+6+8) + 3 (X+1+3+5+7+9) + 8 = 36 + 3 X +75+8 =119+3X, sea múltiplo de 10 es que X = 7.

Códigos de este mismo tipo, donde a un número se le añade un dígito de control, se usan también por ejemplo en los números de las tarjetas de crédito, el ISBN ( Internacional Standard Book Number ) que identifica a la mayoría de los libros, el CUIL (Código Único de Identificación Laboral), etc.



No hay comentarios.:

Publicar un comentario