jueves, 19 de noviembre de 2009

Tipos de paridad

Los códigos de paridad se usan en Telecomunicaciones para detectar, y en algunos casos corregir, errores en la transmisión. Para ellos se añade en origen un bit extra llamado bit de paridad a los n bits que forman el carácter original.

Este bit de paridad se determina de forma que el número total de bits 1 a transmitir sea par (código de paridad par) o impar (código de paridad impar).

Código de paridad par
El bit de paridad será un 0 si el número total de 1 a transmitir es par, y un 1 si el número total de 1 es impar.
Código de paridad impar
El bit de paridad será un 1 si el número total de 1 a transmitir es par y un 0 si el número total de 1 es impar.

Normalmente el bit de paridad se añade a la izquierda del carácter original.

Ejemplos: Tenemos el carácter original 0111001. Vemos que la trama a transmitir tiene un número par de unos (4). Al añadir el bit de paridad obtendremos el siguiente carácter, que es el que se transmitirá a destino:

* Si usamos paridad par, ya hay un número par de unos, por tanto se añade un 0, y transmitiremos 00111001

* Si usamos paridad impar, como hay un número par de unos, hemos de añadir otro 1 para conseguir un número impar, y transmitiremos 10111001

Si se envía un dato y durante la transmisión se produce un único error, el destinatario puede detectarlo al comprobar la paridad en destino. Usando los ejemplos anteriores, y alterando un solo bit de la trama transmitida, nos quedaría.

* Paridad par: se recibe 00110001 en vez de 00111001. Al comprobar el número de unos nos salen 3 (impar), luego se ha producido un error.

* Paridad impar, se recibe 10110001 en vez de 10111001. Al comprobar el número de unos nos salen 4 (par), luego se ha producido un error.

Este método, aunque resulta satisfactorio en general, sólo es útil si los errores no cambian un número par de bits a la vez, ya que un número par de errores no afecta a la paridad final de los datos.

Por tanto, el método de paridad puede detectar un número impar de errores de transmisión. Siguiendo los ejemplos anteriores, y alterando dos bits en la transmisión, tenemos:

* Paridad par: se recibe 00110101 en vez de 00111001. Al comprobar el número de unos nos salen 4 (par), y no detecta los errores.

* Paridad impar, se recibe 10110101 en vez de 10111001. Al comprobar el número de unos nos salen 5 (impar), y no detecta los errores.

Ademas tenemos la paridad de bloque:

El proceso para calcular la paridad de bloque es el siguiente:

* Los caracteres a transmitir se agrupan en bloques de n filas y m columnas
* Se calcula el bit de paridad de cada fila y se añade al principio (o al final, según convenio) de la fila
* Se calcula el bit de paridad de cada columna y se añade al principio (o al final, según convenio) de la columna

El bloque final a transmitir tendrá por tanto una fila y una columna más que el original.

* La nueva columna estará formada por los bits de paridad horizontal de todas las filas

* La nueva fila estará formada por los bits de paridad vertical de todas las columnas.

* Adicionalmente se emplea un bit de paridad cruzada que se calcula a partir de los bits de paridad de filas y columnas.

Los chequeos de paridad horizontal y vertical se usan para detectar y corregir los posibles errores que se puedan producir durante la transmisión de datos.

A continuación se muestra un ejemplo en el que se chequea la paridad de un bloque de 48 bits, distribuido en 6 filas de 8 bits cada una. Se usa paridad par.

Paridad de Bloque
Paridad
Horizontal
Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8
0 0 1 1 0 0 1 0 1
1 1 0 1 1 1 0 0 1
0 1 0 0 1 0 1 0 1
1 0 0 1 1 1 0 0 0
1 1 0 0 1 0 1 1 1
1 0 0 1 0 1 0 1 0
0 1 1 0 0 1 1 0 0 Paridad
Vertical



Fuente

No hay comentarios:

Publicar un comentario