Ultima edición el 16 septiembre, 2021 por JORGE CABRERA BERRÍOS
Durante la discusión de varios sistemas, ya sean analógicos o digitales, hemos encontrado el término Error en casi todas partes. Donde hay entradas y un error de salidas correspondiente es ominoso. De manera similar, en el caso de los sistemas digitales, en varios casos, ya sea una computadora digital o una configuración de comunicación digital, la ocurrencia de errores es un fenómeno común. Y para eso el primer paso es detectar el error y luego se corrigen los errores.
La causa más común de errores es que el ruido se infiltra en el flujo de bits durante el curso de la transmisión del transmisor al receptor. Y si estos errores no se detectan y corrigen, el resultado podría ser desastroso, ya que los sistemas digitales son muy sensibles a los errores y funcionarán mal debido al más mínimo de errores en los códigos transmitidos.
Existen varios métodos de detección y corrección de errores , como la adición de bits adicionales que también se denominan bits de verificación, a veces también se denominan bits redundantes ya que no contienen ninguna información. En este artículo, analizaremos los diversos códigos que se utilizan para la detección de errores y el código de corrección en el sistema digital.
Indice de contenidos
Código de paridad
Se agrega un bit de paridad a las cadenas de bits transmitidas durante la transmisión desde los transmisores para detectar cualquier error en los datos cuando se reciben en el extremo del receptor. Básicamente, un código de paridad no es más que un bit adicional agregado a la cadena de datos. Ahora bien, hay dos tipos de paridad: paridad par y paridad impar.
Ahora obtenemos una paridad par cuando los números totales de unos en la cadena de datos son pares después de agregar ese bit adicional. De manera similar, obtenemos una paridad impar cuando después de agregar ese bit adicional a la cadena de datos, el número total de unos en los datos es impar. Podemos entenderlo con un ejemplo, supongamos que tenemos un código ASCII de ocho bits : 01000001.
Ahora, si el bit agregado es 0, el número se convertirá en 001000001. Aquí el número total de unos en el número es par, por lo que obtenemos una paridad par. Nuevamente, si agregamos 1 al número, el número se convertirá en 101000001. Aquí el número de unos es 3, que es impar, por lo que tenemos una paridad impar. Normalmente se utiliza la paridad uniforme y casi se ha convertido en una convención.
Ahora las comprobaciones de paridad son capaces de detectar un error de un solo bit, pero fallan si hay dos cambios en los datos y es el mayor inconveniente de este sistema. Es por eso que existen varios otros códigos para detectar y corregir errores de más de un bit.
Código de repetición
En el código de repetición, un dato de un solo bit se considera como una cadena de bits de valor predeterminado y se envía al receptor, este es capaz de detectar más de un error de bit de datos. Esto se puede ilustrar con un ejemplo suponiendo que el número original es 101.
Ahora, durante la transmisión, todos los números se repiten, digamos 3 veces, por lo que el número transmitido final es 111000111. Entonces, cuando se recibe el número, se puede identificar fácilmente un error de 1 bit y dos errores de bit, como si fuera 011, 110 o 101. una mejor manera de detectar y corregir datos, pero se vuelve altamente ineficiente a medida que aumenta el número de bits repetidos.
Código de verificación de redundancia cíclica
Los códigos de verificación de redundancia cíclica (CRC) proporcionan un nivel de protección razonablemente alto a un nivel de redundancia bajo. El código de ciclo para una palabra de datos dada se genera como sigue. Al principio tenemos que agregar ciertos números ceros (los números están determinados por el número deseado de comprobaciones de bits.
Esta nueva secuencia de bits de datos se divide luego por una palabra binaria especial cuya longitud es igual a n + 1, siendo n el número de bits de verificación que se agregarán. El resto obtenido como resultado de la división módulo 2 se agrega luego a la secuencia de bits de dividendo para obtener el código cíclico.
La palabra de código generada después de la operación es completamente divisible por el divisor que se utilizó en la generación del código. Por lo tanto, cuando dividimos el código recibido con el mismo divisor, una recepción libre de errores debería conducir a un resto de «0».
Un resto distinto de cero indica la presencia de errores. La probabilidad de detección de errores depende del número de bits de verificación, n, utilizados para construir el código cíclico. Es 100% para errores de un solo bit y de dos bits. También es 100% cuando hay un número impar de bits en error y las ráfagas de error tienen una longitud menor que n + 1. La probabilidad de detección se reduce a 1 – (1/2) n − 1 para una longitud de ráfaga de error igual a n + 1, y a 1 – (1/2) n para una longitud de ráfaga de error mayor que n + 1.