Los
mecanismos explicados detectan errores pero no los corrigen. La
corrección del error se puede conseguir de dos formas, en la
primera, cuando de descubre un error el receptor puede pedir al
emisor que retransmita toda la unidad de datos, con la segunda, el
receptor puede usar un código de corrección de errores que corrija
automáticamente determinados errores. En teoría es posible corregir
automáticamente cualquier error en un código binario, sin embargo
los códigos de corrección son más sofisticados que los de
detección y necesitan mas bits de redundancia, el número de bits
necesarios es tan alto que su uso no es eficiente, por esa razón la
mayoría de la corrección se limita a errores de tres bits o menos.
Corrección
de errores de un único bit
El
concepto de la corrección de errores se puede comprender con el caso
más sencillo: el error de un único bit. Un error de un bit supone
que un bit ha cambiado de un 0 a un 1 o de un 1 a un 0, para corregir
el error, el receptor sólo tiene que invertir el valor del bit
alterado, sin embargo, para hacer eso, el receptor debe saber en qué
bit está el error, por lo que el secreto de la corrección de
errores es localizar el bit o bits inválidos. La cuestión es el uso
de los bits de redundancia para la corrección. Ahora bien ¿cuantos
bits de redundancia usar?
Para
calculas el número de bits de redundancia r necesarios para corregir
un número de bits de datos m, es necesario encontrar una relación
entre m y r.
Si a
m de datos bits se le añaden r bits de redundancia, la unidad
transmitida es m+r, los bits de redundancia r deben ser capaces de
indicar todas las posibilidades de error de 1 bit posibles,
incluyendo el no error, que en m+r bits es de m+r+1 posibilidades (no
error, error en bit0, error en bit 1, etc), por ello r debe ser capaz
de indicar todas esos estados. Dado que los r bits pueden representar
2r estados, entonces r debe ser tal que 2r ≥
m + r + 1.
Código
Hamming
Se
pueden utilizar los bits de redundancia para corregir errores, pero
¿cómo se manipulan esos bits para descubrir en qué posición se ha
producido el error? R. W. Hamming desarrolló una técnica que
proporciona una solución práctica. El código Hamming se puede
aplicar a unidades de datos de cualquier longitud y usa la relación
de bits de datos y de redundancia. En el código cada bit r es el bit
de VRC (redundancia vertical) para una combinación de bits de datos.
Por ejemplo, un dato de 7 bits necesita 4 bits de redundancia, los
colocaremos en las posiciones 1, 2, 4 y 8, con lo que la secuencia
transmitida es la que indica la figura.
Detección y corrección
El
receptor recibe la transmisión, toma los datos y recalcula cuatro
nuevos VRC usando el mismo conjunto de bits usados en el cálculo en
el emisor, a continuación reensambla los nuevos valores de paridad
siguiendo el orden de la posición (r8, r4, r2, r1) la cifra
resultante indica si ha habido error y en qué bit se ha producido.
Si el resultado es 0000 no ha habido error, cualquier otro resultado
indica error y bit erróneo. Una vez identificado el bit erróneo, el
receptor puede cambiar el valor de ese bit para corregir el error.
Corrección
de errores de ráfaga.
Se
puede diseñar un código Hamming para corregir errores de ráfaga de
una cierta longitud, sin embargo el número de bits de redundancia
necesarios es muy elevado, porque los errores pueden ser de tantos
bits pero pueden estar en cualquiera de los bits de la cadena
transmitida.

No hay comentarios:
Publicar un comentario