Durante la discusión de varios sistemas, ya sea analógicos o digitales, hemos encontrado el término Error casi en todas partes. Donde hay entradas y una salida correspondiente el error es ominoso. De manera similar, en el caso de los sistemas digitales, en varios casos, ya sea una computadora digital o un sistema de comunicación digital, la aparición de errores es un fenómeno común. Y para ello el primer paso es detectar el error y después de eso los errores son corregidos.
La causa más común de los errores es que el ruido se desliza en el flujo de bits durante el curso de la transmisión del transmisor al receptor. Y si estos errores no son detectados y corregidos 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 error en los códigos transmitidos. Hay varios métodos de detección y corrección de errores como la adición de bits extra que también se llaman «check bits», a veces también se llaman «bits redundantes» ya que no tienen ninguna información en ellos. En este artículo, discutiremos los diversos códigos que se utilizan para detección de errores y código de corrección en el sistema digital.
Código de paridad
Se añade 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 extra añadido a la cadena de datos. Ahora hay dos tipos de paridad: paridad par y paridad impar. Ahora obtenemos una paridad par cuando el número total de 1s en la cadena de datos es par después de agregar ese bit extra. De manera similar, obtenemos una paridad impar cuando después de agregar ese bit extra en la cadena de datos el número total de 1s en los datos es impar. Podemos entenderlo con un ejemplo, supongamos que tenemos un ocho bit Código ASCII 01000001.
Ahora, si el bit añadido es 0, entonces el número se convertirá en 001000001. Aquí el número total de 1s en el número es parejo, así que obtenemos una paridad par. De nuevo, si añadimos 1 al número, el número se convertirá en 101000001. Aquí el número de 1s es 3, que es impar, así que tenemos una paridad impar. Normalmente se usa la paridad par y casi se ha convertido en una convención. Ahora los controles de paridad son capaces de detectar un error de un solo bit pero falla si hay dos cambios en los datos y es el mayor inconveniente de este sistema. Por eso hay 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 solo bit de datos se considera como una cadena de bits de valor predeterminado y se envía al receptor, éste es capaz de detectar más de un error de bits de datos. Esto puede ilustrarse 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 final transmitido es 111000111. Así que cuando se recibe el número, un error de 1 bit y errores de dos bits pueden ser fácilmente identificados como si fuera 011, 110 o 101. Así que es una mejor manera de detectar y corregir los datos, pero se vuelve altamente ineficiente a medida que el número de bits repetidos aumenta.
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 de la siguiente manera. Al principio tenemos que añadir 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 entonces por una palabra binaria especial cuya longitud es igual a n + 1, siendo n el número de bits de comprobación que se deben añadir. El resto obtenido como resultado de la división del módulo 2 se añade entonces a la secuencia de bits de dividendo para obtener el código cíclico.
La palabra clave generada después de la operación es completamente divisible por el divisor que se utilizó en la generación del código. Así, cuando dividimos el código recibido con el mismo divisor, una recepción sin errores debería llevar a un resto de 0. Un resto distinto de cero es indicativo de la presencia de errores. La probabilidad de detección de errores depende del número de bits de control, n, usados para construir el código cíclico. Es 100% para errores de un solo bit y de dos bits. También es del 100 % cuando un número impar de bits están en error y los brotes de error tienen una longitud menor que n + 1. La probabilidad de detección se reduce a 1 (1/2)n1 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.