Paridad horizontal y vertical
De Wikipedia, la enciclopedia libre
Algunos códigos de bloque usan una combinación de chequeo de paridad horizontal y vertical (LRC / VRC) para detectar errores.
- LRC
- Longitudinal Redundancy Checking (Chequeo de Redundancia Longitudinal/Horizontal)
- VRC
- Vertical Redundancy Checking (Chequeo de Redundancia Vertical)
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 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 |
Ejemplo: queremos transmitir los caracteres "PAG" en código ASCII (P = 50H; A = 41H; G = 47H).
Colocamos los tres caracteres formando un bloque que consistirá en 3 filas y 8 columnas.
Para cada fila se calcula el bit de chequeo de paridad horizontal (en rojo) y para columna el bit de chequeo de paridad vertical (en verde).
El Bit de paridad cruzada (en azul) sería 0(VRC) + 0(LRC) = 0.
Carácter Binario |
Carácter Hexadecimal |
Carácter | ||
V C R |
0 | 1010000 | 50H | P |
0 | 1000001 | 41H | A | |
0 | 1000111 | 47H | G | |
CRC = 0+0 | 1010110 | 56H | ||
LCR |
El nuevo bloque a transmitir estará formado por cuatro filas y ocho columnas.
Por tanto, se transmitirían los caracteres 50 41 47 56 (01010110).
La distancia Hamming en este ejemplo es 4: si cambia un bit cambiarían un bit del VRC, un bit del LRC, y el bit de paridad cruzada, es decir cuatro bits en total.
Este código detectaría errores simples, dobles y triples y corregiría los errores simples.