Está en la página 1de 18

Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

Plan de estudios: 1995


Núcleo Temático: Aspectos Tecnológicos de Canales de Transmisión
Temas: Control de errores. Cifra de error. Métodos de detección y corrección de
errores.
Profesores: Ingenieros Guillermo Mariano Chaile y Ricardo José Corbella
Jefe de T.P.: Ing. José Emilio Monachesi
Año: 2002
Control de errores

Un sistema de comunicación está expuesto a que ocurran errores durante la transmisión e


interpretación de los datos, en especial por problemas de ruido que afectan a las diversas
partes del sistema, principalmente a los canales de transmisión. Es necesario entonces,
desarrollar e implementar procedimientos para el control de estos errores. El control de
errores consta de dos partes: la detección de errores y la corrección de errores.

Una forma de disminuir, detectar y corregir errores de transmisión es enviar datos


adicionales en el contenido del mensaje (redundancia). Aunque se logra una mayor
protección contra errores, cuanto mayor es la cantidad de bits adicionales que no llevan
información, la eficiencia del proceso de transmisión disminuye. Así, en la transmisión
sincrónica debe existir un compromiso entre el tamaño de los bloques de cada mensaje y la
eficiencia de la transmisión. Cuanto más pequeños sean los bloques, menos probable será
la necesidad de retransmitirlos, pero la eficiencia de la transmisión disminuye
apreciablemente.

Por otra parte, cuando los bloques de mensajes son largos, con el objeto de aumentar la
eficiencia, una mayor proporción de estos bloques tendrán errores y será necesario
retransmitirlos, lo que a largo plazo puede disminuir aún más su eficiencia.

En las transmisiones por la red telefónica conmutada, la tasa de error varía según la hora
del día. Por ese motivo, cuando la tasa de error se eleva en exceso, lo más razonable es
disminuir la velocidad de modulación.

Cifra de error

Tasa de errores:

La tasa de errores relaciona la cantidad de bits recibidos con error en el receptor con la
cantidad total de bits transmitidos en un determinado tiempo o sesión. Se la denomina BER
(Bit Error Rate) y su valor es típico para cada medio de transmisión en particular.

bits _ erroneos _ recibidos


BER =
total _ de _ bits _ transmitidos

Ejemplo: un computador recibe desde una fuente remota, un total de 2 Mb que


corresponden a un archivo y a los datos de control para su transmisión. Si durante la
transmisión se produjeron 20 bits erróneos, determinar la tasa de errores de dicha
transmisión.

BER = 20 bits/2 000 000 bits = 10-5

1
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

En una red telefónica, este valor es la “tasa típica de la red” y significa que se puede prever
que se producirá un error de un bit en 100000 bits trasmitidos.

En la actualidad, las redes telefónicas han mejorado la calidad de sus medios de transmisión
y tienen tasas típicas de 10-6 BER.

En las redes de área local, donde las distancias son más cortas y la construcción de las
redes es más exigente y con pares trenzados de cobre, las tasas de errores son mucho
menores y del orden de 10-8 a 10-9 BER. Si se emplean fibras ópticas, la tasa de error pude
alcanzar hasta 10-11 BER.

Tasa de error y velocidad de transmisión para diferentes tipos de canales

Tipo de canal Velocidad bps Tasa de errores BER


2400 1:50Kb
9600 1:20Kb
Línea de grado voz 14400 1:10Kb
28800 1:10Kb/100Kb
mayores 1:1000/10Kb
Línea digital tecnología ATM 155 Mbps a 1:100Mb a
622 Mbps 1:1Gb
Línea digital “Frame Relay” 2 Mbps 1:10Mb a
1:100Mb
Télex 50 1:50Kb
Línea de grado subvoz 45 a 20 1:10Kb

Consideraciones generales

El control de errores implica técnicas de diseño, fabricación de equipos y enlaces de


transmisión de datos que reduzcan el porcentaje de errores. Además incluye metodologías
para detectarlos y corregirlos.

Una metodología posible es no tomarlos en cuenta. Esto parece algo trivial, pero no lo es
tanto si se considera que en muchos casos, por el tipo de información a transmitir y el uso
que la misma recibirá, no es necesario que los errores sean tenidos en cuenta. Esta
metodología reduce los costos aumenta el procesamiento total.

Otra metodología empleada es la prueba de eco, que consiste en que cada vez que se
recibe un carácter o una unidad menor de información, se retransmite de vuelta al
transmisor de donde provino. En esta última estación se compara la información enviada
con la transmitida desde el receptor. Este método desperdicia capacidad de transmisión
pues, como mínimo, un mensaje se transmite dos veces, y en alguna oportunidad muchas
veces más. Además, si el error se produce en el viaje de retorno, es una pérdida innecesaria
de tiempo. Se usa en líneas de baja velocidad y, si bien da cierto grado de protección, no
tiene la eficiencia de otros métodos más refinados.

Tipos de errores

Según su distribución en el tiempo, los errores se pueden clasificar en los siguientes tipos:

Errores simples o aislados: son aquellos que afectan a un solo bit cada vez y,
además son independientes entre sí en cuanto al momento de ocurrencia.

2
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

Errores en ráfagas: son aquellos que afectan a varios bits consecutivos y ocurren en
períodos indeterminados de tiempo.
Errores agrupados: son aquellos que ocurren en tandas sucesivas de una cierta
duración y que no afectan necesariamente a varios bits seguidos.

Métodos de detección y corrección de errores

Vertical VCR
Longitudinal LRC
Detección Control de paridad Bidimensional o de
doble paridad
Cíclica o entrelazada
Detección y Hamming
corrección de errores Códigos Hagelbarger
autocorrectivos Bose Chaudhurí
Corrección Corrección de errores
Técnicas especiales de hacia delante (FEC)
transmisión Requerimiento
automático de
repetición (ARQ)

El proceso de monitorear la información recibida y determinar cuando un error de


transmisión ha ocurrido se denomina control del error. Las técnicas usadas para la detección
de errores no identifican cual bit es erróneo, solamente se indica que un error ha ocurrido. El
propósito de la detección de errores no es impedir que éstos ocurran, pero previene que los
errores detectados no ocurran. Las técnicas de detección de errores más comunes son:

Redundancia. Involucra transmitir cada caracter dos veces. Si el mismo caracter no


se recibe igual dos veces sucesivamente, ha ocurrido error en la transmisión.
Codificación de cuenta exacta. Con la codificación de cuenta exacta, el número de
unos en cada caracter, debe mantenerse constante.
Paridad. Es el esquema de detección de error más usado para los sistemas de
comunicación de datos y se usa con chequeo de redundancia vertical y horizontal.
Con la paridad, un solo bit (el bit de paridad) se agrega a cada caracter para forzar el
total de números unos en el caracter, incluyendo el bit de paridad, para que sea un
número impar (paridad impar) o un número par (paridad par). Un ejemplo de esto, el
código ASCII de la letra "C" es 43 hex o P1000011 binario, con el bit P
representando el bit de paridad. Hay 3 unos en el código, no contando el bit de
paridad. Si se utiliza paridad impar, el bit P se hace 0, así mantenemos el total de
unos en tres, un número impar. Mientras que si usamos paridad par, el bit P se hace
1, siendo el número total de unos igual a cuatro que es un número par.
Chequeo de redundancia vertical y horizontal (VRC/LRC). (VRC) es un esquema
de detección de errores que usa la paridad para determinar si un error de transmisión
ha ocurrido dentro de un caracter. Por esto, también se le llama paridad de caracter.
Con el VRC, cada caracter tiene un bit de paridad agregado a él, antes de la
transmisión. Puede usarse paridad par o impar. La paridad LRC denominada
longitudinal u horizontal utiliza el mismo esquema anterior, con la diferencia que el
control de la paridad se realiza en cada una de las posiciones correspondientes de
los bits del grupo de caracteres de datos con lo que se forma un bloque de bits de
paridad o carácter de paridad que se agrega como bits redundantes a la cadena de
caracteres de datos para el control. Se puede utilizar también la paridad VRC y LRC

3
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

combinada o matricial para determinar en qué posición de la cadena de datos se


encuentra el bit erróneo.
Revisión de redundancia cíclica (CRC): Es el esquema más confiable para la
detección de errores. Con este procedimiento, se detectan el 99.95 % de todos los
errores de transmisión de una cadena de bits. Se usa con códigos de 8 bits como
EBCDIC o códigos de 7 bits como el ASCII, cuando no se utiliza la paridad (8º bit). El
procedimiento se basa en la inclusión de bits redundantes que se agregan a la
cadena de bits de datos (trama genérica), obtenidos del resto de una división no
convencional. Se divide el polinomio dividendo (trama genérica de bits) por un
polinomio divisor normalizado de bits, se descarta el cociente y se toman los bits del
resto de la división que se agregan a la trama genérica para su transmisión y control.

Detección de errores mediante control de la paridad

Se basa en añadir a la secuencia de bits de información transmitidos, otros bits de control


adicionales. Estos bits de control no transportan información alguna, sino que solamente se
utilizan para la verificación de la paridad de secuencia de bits de datos.

Para la verificación de la paridad existen cuatro métodos posibles:

Control de paridad vertical (VCR).


Control de paridad longitudinal (LCR).
Control de paridad bidimensional (LCR/VCR).
Control de paridad entrelazada o cícilica.

En cualquiera de estos métodos que usan estos sistemas, la paridad puede ser par o impar.
En la siguiente figura, se indican ejemplos de ambos casos para una longitud arbitraria de
bits a considerar.

Paridad par o impar Bit de Bits de datos


paridad
La paridad par tendrá un bit adicional de valor 0 si el número
de “1´s” de datos es par, caso contrario, tendrá un valor 1, si el
número de bits de datos es impar, para que la suma de unos
sea par en la cadena de bits. 0 01101101100
La paridad impar tendrá un bit adicional de valor 0 si el número
de “1´s” de datos es impar, caso contrario, tendrá un valor 1, si
el número de “1´s” de datos es par, para que la suma de unos
sea impar en la cadena de bits. 1 01101101100

Control de la paridad vertical (VRC)

Conocido como VRC (Vertical Redundancy Check), se aplica a cada carácter o byte, y su
uso está relacionado fundamentalmente con el código ASCII. Consiste básicamente en
añadir un bit adicional al conjunto de 7 bits que constituyen el carácter en el código
mencionado.

Existen dos formas de definir la paridad de un carácter: mediante la paridad par o impar. En
estos casos, el carácter final, con el bit de paridad incluido, quedará conformado por 8 bits.

4
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

Código ASCII con el bit de paridad

7 bits de datos
Bit de paridad 7 6 5 4 3 2 1
7 F
Máximo valor binario representado 7F (hexadecimal)

En el transmisor, se efectúa el cálculo del bit de paridad correspondiente a cada carácter y


se transmite carácter por carácter. Al recibirse en el receptor estos 8 bits, se recalcula
nuevamente la paridad y se verifica con el criterio utilizado en el transmisor (paridad par o
impar). Si son iguales los bits de paridad, se da por aceptado que el carácter llegó sin error,
y si son diferentes, se notifica por algún método al transmisor del error.

El grave inconveniente de este método es que no se puede detectar la doble inversión de


bits, que se produce cuando hay un doble error en un byte que afecta simultáneamente a
dos unos, transformándolos en cero, o viceversa. Si esto ocurre, la paridad resultante del
carácter será correcta, pero evidentemente el dato transmitido es erróneo. Ejemplo:

Carácter transmitido:

Carácter transmitido con el bit de paridad par 0 1101111


paridad dato

Carácter recibido:

Carácter recibido con doble inversión, bit 1 y 3 (doble error) 0 1101010


paridad dato

Control de paridad longitudinal (LRC)

La paridad LRC (Longitudinal Redundancy Check) denominada longitudinal u horizontal


utiliza el mismo esquema anterior, con la diferencia que el control de la paridad se realiza en
cada una de las posiciones correspondientes de los bits del grupo de caracteres de datos
con lo que se forma un bloque de bits de paridad o carácter de paridad que se agrega como
bits redundantes a la cadena de caracteres de datos para el control.

Dato 1 Dato 2 Dato 3 Dato 4 Dato 5 BCC


Bit 1 1 1 0 1 0 1
Bit 2 1 1 0 1 1 0
Bit 3 1 1 0 1 0 1
Bit 4 0 0 0 0 1 1
Bit 5 0 0 0 1 0 1
Bit 6 1 0 1 1 1 0
Bit 7 0 0 1 1 0 0
Bit de paridad vertical 0 1 0 0 1 0

Al finalizar el bloque de N caracteres, se transmitirá un carácter completo denominado


Carácter de Control del Bloque, más conocido por su expresión en inglés Block Check
Carácter (BCC).

5
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

El transmisor realiza el cálculo de la paridad en cada carácter y luego para todo el bloque
generando un BCC que se transmite en esta cadena de bytes. El receptor, cuando recibe
esta cadena, recalcula la paridad de los bytes de datos y la BCC. Si los BCC son iguales, se
da por aceptado el bloque de caracteres, caso contrario, se notifica por algún método al
transmisor del error ocurrido en la cadena.

Control de paridad bidimensional (VRC/LRC)

Se puede utilizar también el control de la paridad VRC y LRC en forma combinada o


matricial para determinar en qué posición de la cadena de datos se encuentra el bit erróneo.
Ejemplo:

Bytes transmitidos:

D1 D2 D3 D4 D5 D6 D7 D8 LRC
B1 0 0 0 1 0 1 0 1 1
B2 1 1 1 1 0 1 1 1 1
B3 1 0 0 0 0 1 0 1 1
B4 0 1 0 1 0 1 1 1 1
B5 0 1 0 0 0 1 0 0 0
B6 0 1 1 1 0 1 1 0 1
B7 0 1 1 0 0 1 0 0 1
VRC 0 1 1 0 0 1 1 0 0

Bytes recibidos con un bit de error en la posición de la fila 4, columna 6 de la tabla de bits:

D1 D2 D3 D4 D5 D6 D7 D8 LRC
B1 0 0 0 1 0 1 0 1 1
B2 1 1 1 1 0 1 1 1 1
B3 1 0 0 0 0 1 0 1 1
B4 0 1 0 1 0 0 1 1 0
B5 0 1 0 0 0 1 0 0 0
B6 0 1 1 1 0 1 1 0 1
B7 0 1 1 0 0 1 0 0 1
VRC 0 1 1 0 0 0↑ 1 0 0

Al efectuar el control de la paridad VRC y LRC en el receptor, se verifica un error VRC en el


dato Nº 6 y un error LRC en la posición del bit Nº 4 que sirve para determinar en forma
matricial que hay un error en esa posición de la cadena transmitida.

Control de paridad entrelazada o cíclica

Es un procedimiento que proporciona un nivel de detección de los errores de mayor calidad


que el método VRC y menor que el LRC.

Este método requiere de dos bits adicionales para el control de la paridad. En la figura
siguiente se puede observar una palabra de seis bits de información y un esquema que
indica gráficamente la forma en que trabaja este procedimiento. El primer bit de paridad
proporciona la paridad de los bits primero, tercero y quinto, mientras que el segundo
proporciona la paridad de los bits segundo, cuarto y sexto.

6
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

Carácter transmitido: 010101

Generación de la paridad cíclica:

0
1 Bits de
0 información
1
0
1
0 Bits de paridad
1 (par)

Control de errores por el método de redundancia cíclica (CRC)

Conceptos generales del procedimiento

Este método, conocido también como polinomial, permite la verificación de todos los bits del
mensaje mediante la utilización de un algoritmo matemático. Básicamente, consiste en
dividir el mensaje de información que se quiere enviar, por un polinomio conocido, junto con
el resto de la división en el transmisor y enviarlo al receptor. Cuando se recibe esta trama
generadora, el receptor vuelve a efectuar la división por el polinomio conocido, y si el resto
de la división es cero, se interpreta que el mensaje llego sin error, caso contrario, se notifica
al transmisor del error mediante otro procedimiento.

Como resultado de esta división, se obtendrán otros dos polinomios, denominados cociente
y resto. Este último se transmite con la secuencia de bits sobre la que se quiere efectuar el
control de errores. En el receptor se reciben el mensaje a controlar junto con el polinomio del
resto de la división.

El método se basa se basa en la detección de errores por medio de operaciones aritméticas


con polinomios que utilizan la técnica conocida como de módulo 2, en la que no hay
términos de acarreo para la suma, ni de préstamo para la resta. Estas operaciones son
realizadas con circuitos digitales convencionales que ejecutan la función OR EXCLUSIVA.

Para una mayor comprensión de lo expuesto, se muestra una operación de suma y luego
otra de resta.

Ejemplo de suma: 11101001


+ 10011100
01110101
Ejemplo de resta: 11010001
-10010110
01000111
Poniendo otro ejemplo, el mensaje 11011011 puede ser expresado como un polinomio de
grado n = 7:
1. X 7 + 1. X 6 + 0. X 5 + 1. X 4 + 1. X 3 + 0. X 2 + 1. X 1 + 1. X 0 que da como resultado:
X 7 + X 6 + X 4 + X 3 + X +1

7
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

Aquí, los términos correspondientes a los bits de valor cero se anulan, y los que
corresponden a los bits de valor uno, toman la forma de X elevado a una potencia que
corresponda a la posición del bit dentro de la secuencia a transmitir.
Forma de ejecutar el procedimiento:
Definimos un polinomio M(x) de grado n con los bits del mensaje.
Definimos un polinomio G(x) de grado r (generador).
Definimos un polinomio auxiliar de valor X r de grado r más alto que tenga G(x).
El grado n del polinomio M(x) debe ser: n>>r.
Se forma un polinomio que contenga (r+n) bits, de la forma M(x) X r (recordar que
M(x) es de grado n).
r
Se divide el nuevo polinomio formado de la forma M(x) X por el polinomio
generador G(x).
De dicha división se obtendrá un polinomio resto R(x) que siempre debe tener un
número de bits igual o menor que r, grado del polinomio resto.
Finalmente, se procede a obtener un polinomio que denominaremos T(x), que es el
polinomio a transmitir. Éste resulta de restar, mediante el método de módulo 2, los
bits correspondientes al polinomio M(x) X r y del polinomio resto R(x).
Los pasos son:
1. M(x) X r / G(x) = C(x) + R(x), donde C(x) es el cociente de la división y que no se
utiliza o se descarta.
2. T(x) = M(x) X r + R(x)
3. Como se puede observar, el polinomio T(x) será siempre divisible por el polinomio
generador G(x).
4. Si se introducen errores en la transmisión se recibirá: T(x) = T(x) + E(x), donde E(x)
será la componente de error y entonces el polinomio recibido deja de ser divisible por
el polinomio generador, siempre que este último sea bien escogido (por ello el uso de
estos polinomios normalizados). En general, resulta muy poco probable que E(x) no
sea detectable.
Polinomios generadores
En particular, tres polinomios se han convertido en normas usadas internacionalmente. En
los tres, el término (x+1) está contenido como factor primo.
Polinomio CRC-16: se usa para caracteres codificados con 8 bits y cuyo polinomio es
el siguiente:
P( x) = X 16 + X 15 + X 2 + 1
Este polinomio generador es capaz de detectar entre otros:
*Errores simples: 100%
*Errores dobles: 100%
*Errores impares: 100%
*Errores en ráfagas:
100% para ráfagas menores a 17 bits.
99,997 % para ráfagas de hasta 17 bits.
99,998 para ráfagas mayores a 17 bits.

8
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

Polinomio normalizado por la UIT-T: el CCITT, sobre la base de pruebas prácticas


con diversas opciones, ha normalizado el siguiente polinomio generador:
P( x) = X 16 + X 12 + X 5 + 1
Su rendimiento es igual al anterior.
CRC-12: está indicado para caracteres codificados con 6 bits. Su forma es la
siguiente:
P( x) = X 12 + X 11 + X 3 + X 2 + X + 1
Para finalizar con este método, daremos un ejemplo de detección de errores por CRC.
Sea un mensaje 1101011011 y un polinomio generador de la forma G(x) = x4 + x + 1.
Determinar:
1) El resto de la división R(x). 2) La trama de bits T(x) enviada por el transmisor. 3) La
verificación del error en el receptor.

Resolución:

1. Para determinar el resto de la división, primero debemos efectuar los siguientes


pasos:

Definimos un polinomio M(x) de grado n con los bits del mensaje, es decir:
M(x) = x9 + x8 + x6 + x4 + x3 + x +1
Definimos los bits del polinomio G(x) = x4 + x + 1 de grado r como:
10011
Definimos el polinomio auxiliar X como: x4 .
r

Definimos el polinomio M(x) X r = (x9 + x8 + x6 + x4 + x3 + x +1) x4

M(x) X r = x13 + x12 + x10 + x8 + x7 + x5 + x4

Definimos los bits del polinomio M(x) X r = x13 + x12 + x10 + x8 + x7 + x5 + x4 como:

11010110110000

De esta manera, ya tenemos los bits del dividendo y del divisor para efectuar la división no
convencional mediante una función or exclusivo de módulo 2 para la resta en el dividendo
hasta obtener el resto de la división:

11010110110000 /10011
10011 1100001010 no se tiene en cuenta
010011
10011
0000010110
10011
0010100
10011
001110 resto o residuo
El resto de la división se trunca en los últimos 4 bits, es decir que vale: 1 1 1 0

9
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

2. La trama T(x) enviada por transmisor vale: 1 1 0 1 0 1 1 0 1 1 1 1 1 0, donde los


cuatro últimos ceros de la trama generadora son ocupados por el resto de la división.
3. El control del error en el receptor se realiza dividiendo T(x) / G(x), verificando el
residuo de la división.
11010110111110 /10011
10011 1100001010
010011
10011
0000010111
10011
0010011
10011
000000 resto
Como el resto de la división da cero para todos los bits del residuo, significa que el mensaje
ha llegado sin error. Caso contrario, si se hubiera producido un error en cualquiera de los
bits de la trama T(x), el resto sería diferente de cero.

Corrección de errores

Hasta aquí hemos considerado solamente la detección de los errores, sin embargo, a partir
de la verificación de la existencia de los mimos, se pueden adoptar dos posturas diferentes:
corregirlos o no tomarlos en cuenta.

Los métodos más comunes para la corrección de errores son:

Sustitución de símbolos. Se diseña para usarse en un ambiente humano, es decir,


en la terminal de recepción. Se analizan los datos recibidos y se toman decisiones
sobre su integridad, y todo esto es llevado a cabo por la persona que está a cargo
del sistema. Si un caracter se recibe con error, en vez de revertirse a un nivel
superior de corrección de errores o mostrar el caracter erróneo, un caracter único
que es indefinido por el código de caracteres, se sustituye por el caracter malo. Si
por ejemplo, el mensaje "Comunicación" se recibe con un error en el último caracter,
se mostrarí como "ComunicacióÞ". Un operador puede discernir el mensaje correcto
por inspección, y no se necesita la retransmisión. Pero si el mensaje no se puede
descifrar, es necesario la retransmisión.
Retransmisión (ARQ). Es volver a enviar un mensaje, cuando se recibe una señal
de error. La terminal de recepción automáticamente pide la retransmisión de todo el
mensaje mediante un aviso al transmisor. La retransmisión también se llama ARQ,
que significa petición automática para retransmisión.
Seguimiento de corrección del error hacia delante (FEC). Es el único esquema de
corrección del error que detecta y corrige los errores de transmisión,
automáticamente del lado receptor, sin pedir retransmisión. Con FEC, se agregan
bits redundantes al mensaje y se lo codifica antes de la transmisión. El receptor
realiza la decodificación, control del error y corrección automática del o los bits
erróneos. Uno de los tantos métodos conocidos es a través de la codificación de
Hamming, que se basa en la inclusión de bits redundantes colocados en
determinadas posiciones de una cadena de bits de datos para formar un código que
permite el control para la detección y la corrección de un bit erróneo en una cadena
de bits transmitidos. Para la detección y corrección de errores de más de un bit en
una cadena de bits transmitidos, existen otros códigos mas complejos.

10
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

Técnicas de corrección de errores

Consideraciones generales:

Existen dos estrategias fundamentales para la corrección de errores:

Corrección hacia delante.


Corrección hacia atrás.

Si bien resulta casi imposible corregir la totalidad de los errores, la mayoría de las técnicas
que normalmente se emplean, como se ha visto anteriormente, llegan a corregir el 99,99%
de los mismos.

En algunas aplicaciones, la no corrección de errores, puede producir problemas graves.


Imaginemos, por ejemplo, una aplicación bancaria y nos daremos cuenta de los daños que
se podrían producir si no se resuelve adecuadamente la corrección de los errores. De ahí la
importancia de este tema en el diseño de cualquier sistema.

Corrección hacia atrás:

Consiste en el uso de sistemas de detección de errores. Cuando se detecta un error en el


equipo receptor, éste solicita al equipo transmisor la repetición del bloque de datos
transmitidos. De ahí la llamada corrección hacia atrás.

Este sistema implica la retransmisión de los datos tantas veces como sea necesario, hasta
que sean recibidos libre de errores. De esto se desprende la importancia de una buena
elección de la velocidad de modulación en el caso de las transmisiones por canales
analógicos mediante módems de datos.

Se puede apreciar claramente que cuando se eligen velocidades muy altas, respecto de las
que el canal de comunicaciones realmente puede soportar, los errores provocan una pérdida
de tiempo mayor que la ganancia que presumiblemente se iba a obtener con una velocidad
superior.

Dicho en otras palabras, se produce la paradoja de que aumentando la velocidad de


modulación disminuye la velocidad real de transferencia de datos, que en última instancia,
es la que más interesa al administrador del sistema informático.

Corrección hacia delante:

Este técnica se denomina también FEC (Forward Error Correction), se basa en el uso de
códigos autocorrectores que se diseñan sobre la base de sistemas de codificación
redundante y corrigen los errores detectados en la misma estación que recibe el bloque de
datos.

Aunque estos métodos hacen jnnecesaria la retransmisión, no son neutros al usuario, pues
para posibilitar la corrección en destino deben enviar un número de bits varias veces
superior al que se necesita cuando se utilizan códigos convencionales.

Sin embargo, en muchas aplicaciones es necesario el uso de este tipo de código porque no
resulta posible o conveniente pedir la retransmisión de los datos, ya sea por razones de
seguridad o por necesidades de la misma operación del sistema informático asociado.

11
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

Corrección de errores mediante el uso de Técnicas Especiales de Transmisión

Retransmisión de los datos erróneos:

Diversos dispositivos de las rede de transmisión de datos, poseen capacidad para detectar
errores y cuando los detectan, piden su retransmisión inmediata. Este método de detección
del error y su retransmisión es la manera menos costosa y más sencilla de reducir errores
en la transmisión.

La corrección por retransmisión requiere una tecnología sencilla y poca capacidad de


memoria. Una vez detectada la existencia de un error (por intermedio del o los bits de
paridad o por códigos de redundancia cíclica), el método consiste en pedir la retransmisión
del carácter o grupos de caracteres hacia el receptor.

Requerimiento automático de repetición:

También conocido como ARQ (Automatic Retransmissión Request), se utiliza solamente


entre dos estaciones. Este sistema se suele denominar control por medio del eco o echo
checking.

El sistema consiste en la transmisión de pequeños bloques de datos, luego, la fuente espera


que la estación receptora le envíe un nuevo requerimiento para la transmisión de un nuevo
bloque de datos. Si el receptor hubiera detectado un error, requerirá la retransmisión del
bloque anterior. Cada bloque tiene 8 caracteres de 7 bits cada uno. En caso de detectarse
un error, el proceso puede llegar a repetirse hasta un determinado número de veces, en
general 32, pasando luego el equipo a la posición de reencendido (restart).

La mayor ventaja de este método es que prácticamente garantiza una transmisión de datos,
libre de errores, suponiendo que el enlace es posible.

Las desventajas son:

El enlace es factible solamente entre dos estaciones al mismo tiempo.


El sistema ARQ es más lento que el de Corrección de Errores hacia delante (FEC),
aún cuando no existan errores que corregir, y será mucho más lento a medida que
se incremente el número de errores.
La estación receptora debe tener en operación un equipo transmisor para acusar
recibo y solicitar la retransmisión.

Sin embargo, siempre que este método pueda ser usado, resulta ser el más efectivo y, por
lo tanto, el más usado. En particular, se emplean para la transmisión de bloques de hasta
512 bytes.

Corrección de errores hacia delante:

También conocido como FEC (Forward Error Correction), se emplea en los casos en que
hay más de una estación receptora y no se necesitan réplicas por parte de estas últimas.

Funciona en el modo denominado diversidad de tiempo (Time Diversity), permitiendo que


cada mensaje se envíe dos veces, intercalando los caracteres en diferentes instantes.
Consecuentemente, la estación receptora tiene dos oportunidades de recibir correctamente
cada carácter.

12
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

Este procedimiento agrega suficiente redundancia para que el receptor pueda detectar la
presencia de un error, y además ubicar la posición del bit en donde se ha producido dicho
error. Para poder realizar esta última operación, la cantidad de bits que es necesario añadir
es mucho mayor que la que se necesitaría para poder detectar la presencia de errores.

Por ejemplo si se desean enviar caracteres del 1 al 9 como los indicados en la figura, el
transmisor enviará el mensaje tal como se indica.

Mensaje Dx

* * 1 * 2 * 3 1 4 2 5 3 6 4 7 5 8 6 9 *

Mensaje Rx

Los asteriscos representan los caracteres anteriores a la serie transmitida en el ejemplo.

La estación receptora examinará primero la serie Dx y luego la serie Rx. Para un mismo
carácter pueden suceder los casos indicados en esta otra figura:

Posibles operaciones del FEC


Caracteres Operación del FEC
Serie Dx Serie Rx
Sin error Sin error Se ordena imprimir el carácter
Con error Sin error Se ordena imprimir el carácter
Sin error Con error Se ordena imprimir el carácter
Con error Con error Se ordena imprimir un carácter especial que indica error en la recepción

Las ventajas del sistema FEC, con respecto al sistema ARQ, son los siguientes:

Se pueden transmitir mensajes a varias estaciones receptoras. Este método se


conoce en telecomunicaciones como transmisión por difusión (Transmisión
Broadcasting). No obstante, existe una variación del sistema de Corrección hacia
delante denominada SEL/FEC (Selective FEC), por medio de la cual la estación
transmisora emite un código correspondiente sólo a determinadas estaciones
receptoras, las cuales, consecuentemente, serán las únicas habilitadas para recibir
el mensaje.
No requiere el empleo de transmisores en las estaciones receptoras.
Menor tiempo de transmisión.

Este método se usa en ciertas aplicaciones especiales, como por ejemplo, en el caso de
canales unidireccionales sin retorno o en enlaces satelitales en los que se procede a
transmitir muchos mensajes en una sola dirección debido a que el tiempo de retardo de las
señales es muy alto. También es aplicable en los sistemas digitales que trabajan en tiempo
real, por ejemplo, aquellos que actúan sobre un proceso industrial a partir de los valores de
ciertas variables del proceso.

En este último caso también se usa un método combinado ARQ/FEC, a fin de recibir una
confirmación de lo transmitido en sentido inverso al cabo de un cierto número de mensajes.

13
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

Corrección de errores mediante códigos autocorrectores


Introducción:
Los métodos de corrección de errores mediante el empleo de autocorrectores se basan en
códigos que tienen la suficiente redundancia para que, una vez detectados, se puedan
corregir los errores sin necesidad de proceder a la correspondiente retransmisión.
La redundancia se extiende des unos pocos bits hasta llegar, en algunos casos, al doble o
aún a una cantidad mucho mayor que los necesarios para transmitir un carácter.
Estos métodos no son sencillos, y los hay de distintos tipos: los más conocidos son los
códigos Hamming, Hagelbarger y Bose-Chaudhurí, entre otros.
Para interpretar el funcionamiento de estos códigos, también llamados códigos de acción
progresiva, debemos analizar previamente el concepto denominado “Distancia de
Hamming”.
Distancia de Hamming:
Es el número de bits en que difieren dos secuencias binarias, S1 S2, de la misma longitud.
Sea por ejemplo, la secuencia S1, que corresponde a la letra B en el Alfabeto Internacional
Nº 5 de la UIT-T, y sean también las secuencias S2, S3, S4 y S5 correspondientes a otras
letras del mismo alfabeto. Si comparamos bit a bit de igual peso, la primera de las
secuencias con las restantes, la Distancia de Hamming estará dada por la cantidad de bits
en que difieren uno a uno, los respectivos conjuntos. Los resultados de este ejemplo se
muestran en la siguiente tabla:
Distancias de Hamming
Conjunto Representa Secuencia Distancia de
binaria Hamming
S1 B 0100001 --
S2 C 1100001 1
S3 D 0010001 2
S4 E 1010001 3
S5 U 1010101 4
A efectos de la comparación y del cálculo de la Distancia de Hamming, se ha tomado como
referencia la secuencia S1. Como se puede observar en este ejemplo, la distancia de
Hamming varía de 1 a 4.
La distancia de Hamming está relacionada con la probabilidad de error. En efecto, cuanto
mayor sea la distancia mínima entre los símbolos de un código dado, menor será la
probabilidad de cometer errores. Sin embargo, aumentar las distancia de Hamming mínima
entre símbolos significa codificar menos símbolos con igual número de bits. En otras
palabras, aumentando la redundancia se logra disminuir la probabilidad de cometer errores.
Para demostrar este concepto, usaremos como ejemplo un cubo. Supongamos que tenemos
un código de 3 bits por byte con el cual podemos formar un total de 8 combinaciones de
bytes diferentes. Cada una de estas combinaciones puede representarse en uno de los 8
vértices de un cubo. Supongamos también que con este código queremos representar
símbolos numéricos, que es este caso serán como máximo 8, es decir, las cifras de 0 a 7.
El siguiente gráfico muestra los 3 cubos que se analizarán en los siguientes párrafos.

14
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

011 010
011 010 011 010
3 2 1

001 000
001 000 0
001 000 0
1 0

111 110
111 6 110 111 2 110
1
7

5 3
4 101 100
101 100 101 100

En el primer cubo de la izquierda, a cada byte disponible se le ha asignado un símbolo


(cifras de 0 a 7). Como se puede observar, en este caso la distancia de Hamming mínima es
H=1, que se da entre los bytes situados en vértices adyacentes. Con este valor mínimo de la
distancia de Hamming no es posible detectar ni corregir ningún error, pues la alteración de
un bit dará por resultado una nueva combinación que tiene asignado otro símbolo.
En el cubo del centro se han asignado símbolos (cifras de 0 a 3) a solamente 4 bytes de los
8 disponibles. Como se puede observar, en este caso la distanciad e Hamming mínima entre
bytes válidos es H=2. Para que esto sea posible, los bytes válidos se han situado en vértices
opuestos por las caras, mientras que a los vértices adyacentes no se les ha asignado ningún
símbolo. Con esta distancia mínima es posible detectar la presencia de un bit erróneo, pero
no corregirlo. En efecto, la alteración de un solo bit resultará en una combinación que no
tiene asignado un símbolo, por lo que se puede deducir que se trata de un error. Esta
situación es la que se produce cuando se usa un bit de paridad, que permite detectar un
error pero no coregirlo.
En el cubo de la derecha, hay solamente 2 de los 8 bytes disponibles y se les ha asignado
símbolos (cifras 0 y 1). En este caso, la distancia de Hamming mínima entre bytes válidos es
H=3. Para que esto sea posible, los bytes válidos se han situado en vértices opuestos por el
centro del cubo, mientras que a los bytes adyacentes y a los opuestos por la cara no se les
ha asignado ningún símbolo. Con esta distancia mínima es posible detectar bytes con 1 o 2
bits erróneos. En efecto, la alteración de 1 o 2 bits dará lugar a combinaciones que no
representan ningún símbolo. Además, también es posible corregir los bytes que tengan un
solo bit erróneo, ya que si se supiera que ha habido un solo error, es posible detectar el byte
con error y luego efectuar la correspondiente corrección.
Este ejemplo nos permite inferir que la capacidad de detección y corrección de errores es
función del valor de H, valor que hemos denominado Distancia de Hamming. En la siguiente
tabla se indica la relación entre el valor de H y la capacidad de detección y corrección de
errores.
Detección y corrección de errores en función del valor de H
Distancia de Control de errores
Hamming Detección Corrección
1 No No
2 Uno No
3 Dos Uno
4 Tres Uno

15
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

Código de Hamming
Este código autocorrector permite detectar y corregir errores mediante el empleo de bits de
paridad con determinadas combinaciones únicas de información.

Algoritmo Transmisor Algoritmo Receptor

Mensaje Mensaje
Fuente Mensaje Procesador
decodificado Destino
codificado de autocorrección

Bits de
paridad

De la tabla anterior vimos que un código de distancia mínima de Hamming igual a tres
permite detectar errores de dos bits y corregir errores de un bit. En general, la distancia
mínima de un código para que permita corregir errores de n bits debe ser dm = 2n + 1.
Los códigos de Hamming están basados en la adición de p bits a un código de distancia
unidad de n bits, obteniéndose un nuevo código de n + p bits. En este nuevo código se
realizan p detecciones de paridad en bits seleccionados de la cadena, obteniéndose un bit
de paridad uno o cero según el número de bits sea par o impar. El conjunto de los p bits de
paridad forma un número en el sistema binario natural, cuyo equivalente decimal nos indica
la posición del bit erróneo. En caso de que no exista error, dicho número debe ser cero. El
número p de bits añadidos ha de ser suficiente para permitir la detección y la ausencia de
error en las n + p posiciones. Dado que con p bits se obtienen 2n combinaciones, se debe
cumplir la relación : 2 n ≥ n + p + 1 .
Como ejemplo de aplicación del código de Hamming, vamos a utilizar un código decimal
codificado en binario natural. Si este código BCD adoptado es de n = 4 bits, el número de
bits que se deben añadir es 3, dado que 23 = 4 + 3 + 1. Para detectar los 7 posibles errores
de un bit en cada una de las posiciones y la ausencia del error, son necesarias 8
combinaciones binarias que denominaremos “correctoras de error”. Dichas combinaciones
se obtienen mediante 3 bits que denominaremos C1, C2 y C3 , juntamente con el número
decimal equivalente al binario formado por ellos que ha de indicar la posición errónea.
En la siguiente tabla se presentan todas las combinaciones de los bits C1, C2 y C3. El bit C1,
toma el valor 1 si se producen errores en los bits de posición b1, b3, b5 y b7 de las
combinaciones del código. Si el número de “unos” existentes en esas cuatro posiciones es
siempre “par”, un error en cualquiera de esos cuatro bits lo convierte en impar. Por lo tanto,
C1 debe valer 1 si el número de unos en la posiciones b1, b3, b5 y b7 es impar, y cero en
caso contrario. La función lógica que cumple las condiciones especificadas es la OR
EXCLUSIVA. Es decir:
C1 = b1 ⊕ b3 ⊕ b5 ⊕ b7

16
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

De igual forma se deduce que C2 y C3 se pueden obtener por medio de las expresiones:
C 2 = b2 ⊕ b3 ⊕ b6 ⊕ b7
C 3 = b4 ⊕ b5 ⊕ b6 ⊕ b7
para lo cual ha de cumplirse la condición de que el número de unos debe ser par en las
combinaciones b2, b3, b6, b7 y b4, b5, b6,b7.
Nº decimal C3C2C1
equivalente
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
Para lograr estas condiciones se deben generar adecuadamente los tres bits de paridad que
se añaden a los cuatro bits de datos de la combinación BCD. Dado que b1, b2 y b4 solo
aparecen una vez en cada una de las expresiones anteriores, los elegiremos como bits
añadidos a la combinación BCD de datos formada por b3, b5, b6 y b7 de la cadena. El bit b1
debe valer 1 si el número de unos de b3,b6 y b7 es impar, y cero en caso contrario, por lo
tanto:
b1 = b3 ⊕ b5 ⊕ b7
De igual forma, b3 y b4 se van a obtener respectivamente como:
b2 = b3 ⊕ b6 ⊕ b7

b4 = b5 ⊕ b6 ⊕ b7
En consecuencia, se puede formar una tabla con el código de Hamming que represente los
4 bits de datos y los 3 bits de paridad, en sus respectivas posiciones y con los bits de menor
a mayor peso de derecha a izquierda:

Nº decimal I7 I6 I5 p4 I3 p2 p1
equivalente b7 b6 b5 b4 b3 b2 b1
0 0 0 0 0 0 0 0
1 0 0 0 0 1 1 1
2 0 0 1 1 0 0 1
3 0 0 1 1 1 1 0
4 0 1 0 1 0 1 0
5 0 1 0 1 1 0 1
6 0 1 1 0 0 1 1
7 0 1 1 0 1 0 0
8 1 0 0 1 0 1 1
9 1 0 0 1 1 0 0
En la tabla, se observa que para 4 bits de datos, se necesitan 3 bits adicionales de paridad.
La posición de estos bits de paridad en la cadena de 7 bits, están en relación al valor 20, 21,
22, y así sucesivamente, que corresponden a la posición 1 para p1, 2 para p2 y 4 para la p3.

17
Universidad Tecnológica Nacional Ingeniería en Sistemas de Información

Facultad Regional Tucumán Cátedra: Comunicaciones

El bit b1 que corresponde a p1 controla las posiciones b3, b5 y b7 de los datos de información.
El bit b2 que corresponde a p2 controla las posiciones b3, b6 y b7 de los datos de información;
y el bit b4 que corresponde a p3 controla las posiciones b5, b6 y b7 de los datos de
información.
A partir de esta tabla, el transmisor genera estos siete símbolos codificados. Cuando llegan
al receptor, se hace la verificación del error a través de los códigos correctores C1, C2 y C3.
Si las tres comprobaciones dan cero, no hay error. Caso contrario, el número binario
formado por C3, C2 y C1 indica el número decimal equivalente del lugar de la cadena donde
se ha producido el error.
Por ejemplo, dada la cadena de bits 0110100 que corresponde al número decimal 7,
generada por el transmisor, comprobar el error si en el receptor se ha recibido la cadena
0100100.
Para detectarlo, comprobaremos el valor lógico de C1, C2 y C3 en la cadena 0 1 0 0 1 0 0.
C1 = b1 ⊕ b3 ⊕ b5 ⊕ b7 = 0 ⊕ 1 ⊕ 0 ⊕ 0 = 1

C 2 = b2 ⊕ b3 ⊕ b6 ⊕ b7 = 0 ⊕ 1 ⊕ 1 ⊕ 0 = 0
C 3 = b4 ⊕ b5 ⊕ b6 ⊕ b7 = 0 ⊕ 0 ⊕ 1 ⊕ 0 = 1
La combinación de C3, C2 y C1 es 101, equivalente al número decimal 5 que es la posición
desde derecha a izquierda del bit erróneo donde el receptor procede a invertir el bit.
El error puede producirse en cualquier lugar de la cadena ya sea en la posición de los datos
o de los bits de paridad y la comprobación es siempre válida. Recordemos que para detectar
y corregir un bit erróneo en una cadena de 4 bits de datos hemos necesitado 3 bits
adicionales como mínimo.
La tasa de error en el diseño de sistemas de transmisión de datos.
La presencia de errores en el diseño de los sistemas de transmisión de datos no puede ser
omitida nunca. Por este motivo, cuando se diseña o se implanta un determinado sistema con
su correspondiente tecnología asociada, deben tenerse presente los siguientes aspectos:
La tasa de error, tanto para las comunicaciones locales como para las remotas. En el
caso de las comunicaciones locales, la tasa de error es normalmente menor que en
las comunicaciones remotas.
Los medios para recuperar la información afectada por errores.
La cantidad de información a transmitir por unidad de tiempo: que se corresponda
con el concepto definido como velocidad real de transferencia de datos.
La velocidad de transmisión que es necesaria para satisfacer los requerimientos del
sistema.
Basándose en los aspectos anteriores, se deberá determinar:
El ancho de banda del canal que será necesario usar.
El tipo de control de errores que se requiere.
Los medios de comunicaciones y elementos técnicos que podrán cumplir con dichos
requerimientos.

18

También podría gustarte