¡Gracias por visitar Tecno Academy!                     Informática, todos los niveles - Trucos - Apuntes - Diapositivas - Libros - Enlaces - Curiosidades - Descargas - Tecnologías - Opiniones - Podcasting, Byte - Internautas TV - Pizarra Virtual                   

miércoles, 3 de octubre de 2007

Detección de errores en códigos binarios

En el manejo, y especialmente en la transmisión de información numérica, es posible que se produzcan errores debido a la presencia de ruido en el proceso o por avería de alguno de los componentes.
Cuando en un código binario se utilizan todas las combinaciones posibles (2^n) de sus n posiciones, es imposible la detección de un error, porque una combinación del código se transformará en otra que también pertenece a él. Por consiguiente, la detección de errores en un código binario se logra no utilizando todas las combinaciones posibles. Pero esta condición, aunque es necesaria, no es suficiente para que el código permita detectar errores. Por ejemplo, el código BCD exceso tres no utiliza más que diez combinaciones de las dieciséis posibles para cuatro bits, pero, si por un error en un bit, la combinación 0011 se convierte en 0111, no es posible detectarlo, porque ambas combinaciones pertenecen a este código.
Para establecer la condición necesaria y suficiente para que un código binario permita detectar errores definiremos el concepto de “distancia mínima de un código”. La distancia entre dos combinaciones binarias viene dada por el número de bits de una de ellas que deben ser modificados para obtener la otra. En un código se define la distancia mínima como la menor de las distancias entre dos combinaciones binarias cualesquiera pertenecientes al mismo. Así, si la distancia mínima de un código es la unidad, un error en uno solo de los bits de una combinación cualquiera, puede convertirla en otra combinación perteneciente al mismo y hace que el error no sea detectable.
Existen diversos tipos de códigos detectores de errores, entre los cuales se encuentran los códigos de paridad y los códigos de peso constante (entendiendo por peso de una combinación binaria el número de unos lógicos de la misma). Los códigos de paridad se obtienen añadiendo a las combinaciones de los códigos de distancia unidad un bit llamado de paridad. Si el código que se desea obtener es de paridad par, dicho bit será tal que el número de unos en cada combinación del nuevo código sea par. Si, por el contrario, el código resultante es de paridad impar, el bit añadido a cada combinación ha de ser tal que la resultante tenga un número impar de unos. La detección de errores en estos códigos consiste en comprobar si el número de unos es par (códigos de paridad par) o impar (códigos de paridad impar). La paridad par es un caso especial del control de redundancia cíclica (CRC), donde el bit de CRC se genera por el polinomio x+1. Pero el control de redundancia cíclica lo trataremos con más detalle en otro momento.




Los códigos de distancia mínima dos permiten, pues, la detección de errores de un bit. Para poder detectar errores de más de un bit es necesaria la utilización de un código de distancia mínima superior a dos. En general, el número de bits erróneos que se pueden detectar es igual al número en que la distancia mínima es superior a la unidad. Ejemplos de códigos para la detección de errores de un bit son el código 2 entre 5 y el biquinario.


Referencias:

Esta explicación ha sido adaptada a partir de explicaciones extraídas del libro Sistemas Electrónicos Digitales. Enrique Mandado. Ed. Marcombo. 7ª Edicion; aunque ya está a la venta la 8ª edición.

Para disponer de información más detallada sobre la codificación e implementación de estos sistemas podéis descargar los siguientes apuntes de elprisma.com

No hay comentarios: