Códigos de control de paridade
De Wiki do Pazo da Mercé
(Nova páxina: Un dos códigos máis básicos para a detección de erros é a utilización dunha serie de bits de '''paridade'''. Podemos distinguir dous tipos de códigos de control de paridade: ==...) |
|||
| (Non se mostran 4 revisións do historial.) | |||
| Liña 1: | Liña 1: | ||
| - | Un dos códigos máis básicos para a detección de erros é a utilización dunha serie | + | Un dos códigos máis básicos para a detección de erros é a utilización dunha serie de '''bits de paridade'''. Podemos distinguir dous tipos de códigos de control de paridade: |
| - | == Paridade simple == | + | == [http://es.wikipedia.org/wiki/Control_de_errores#Paridad_simple_.28paridad_horizontal.29 Paridade simple] == |
| - | O bit de paridade é aquel que se selecciona en función do número de 1s da palabra mensaxe. Así temos: | + | O [http://es.wikipedia.org/wiki/Bit_de_paridad bit de paridade] é aquel que se selecciona en función do número de 1s da palabra mensaxe. Así temos: |
{| border="1" cellpadding="5" cellspacing="0" | {| border="1" cellpadding="5" cellspacing="0" | ||
| Liña 18: | Liña 18: | ||
|0011011 (1) | |0011011 (1) | ||
|} | |} | ||
| + | |||
| + | O cálculo, realmente, faise coa función XOR (OR-Exclusivo), definida como segue: | ||
| + | |||
| + | {| border="1" cellpadding="5" cellspacing="0" | ||
| + | !A B | ||
| + | !A xor B | ||
| + | |- | ||
| + | |0 0 | ||
| + | |0 | ||
| + | |- | ||
| + | |0 1 | ||
| + | |1 | ||
| + | |- | ||
| + | |1 0 | ||
| + | |1 | ||
| + | |- | ||
| + | |1 1 | ||
| + | |0 | ||
| + | |} | ||
| + | |||
| + | Se seguimos o resultado da función xor, o tipo de paridade que se aplicaría é a par, por iso é a máis usada e a que se entende por defecto. | ||
| + | |||
| + | Este código ten unha distancia mínima de 2, co cal só detecta erros simples. Detecta tamén erros si o número de bits erróneos é impar, pois se fose par un erro se compensaría co outro. | ||
| + | |||
| + | Por exemplo, se se desexa enviar a palabra 1001 o transmisor calcula o bit de paridade (0), deste xeito a palabra código que se envía é 10010. O receptor recibe 10011, este calcula de novo o bit de paridade e dálle (0) e el recibiu (1) co cal detecta o erro pero non o pode corrixir. | ||
| + | |||
| + | |||
| + | == [http://es.wikipedia.org/wiki/Control_de_errores#Paridad_cruzada_.28paridad_horizontal-vertical.29 Paridade de bloque] == | ||
| + | |||
| + | Trátase de organizar a información por bloques, compoñendo unha táboa de k x m bits (k palabras de m bits cada unha). | ||
| + | |||
| + | Logo calcúlanse os bits de paridade de cada unha das m filas (paridade horizontal) e k columnas (paridade vertical). | ||
| + | |||
| + | Por último calculase o bit de paridade cruzada a partires da columna ou da fila de paridade calculada anteriormente. | ||
| + | |||
| + | Exemplo: | ||
| + | |||
| + | [[Imaxe:Paridadedebloque.jpg|400px]] | ||
| + | |||
| + | Neste caso o codificador fai bloques de 4 palabras de 6 bits cada unha, e calcula as distintas paridades, e logo as envía ao receptor, unha fila tras outra (Polo tanto, envía 5 palabras de código de 7 bits cada unha). | ||
| + | |||
| + | O decodificador reconstrúe o bloque e volve a calcular os bits de paridade correspondentes e compáraos cos bits de paridade recibidos. | ||
| + | |||
| + | Este código ten unha distancia mínima de 4, co cal corrixe erros simples e detecta erros dobres, triples e cuádruples se estes non forman un rectángulo na matriz de díxitos. | ||
Revisión actual ás 14:29, 13 decembro 2008
Un dos códigos máis básicos para a detección de erros é a utilización dunha serie de bits de paridade. Podemos distinguir dous tipos de códigos de control de paridade:
Paridade simple
O bit de paridade é aquel que se selecciona en función do número de 1s da palabra mensaxe. Así temos:
| Tipo de paridade | Definición | Exemplo |
|---|---|---|
| Par | Se o número de 1s é par engádese un 0, senón un 1 | 0011011 (0) |
| Impar | Se o número de 1s é impar engádese un 0, senón un 1 | 0011011 (1) |
O cálculo, realmente, faise coa función XOR (OR-Exclusivo), definida como segue:
| A B | A xor B |
|---|---|
| 0 0 | 0 |
| 0 1 | 1 |
| 1 0 | 1 |
| 1 1 | 0 |
Se seguimos o resultado da función xor, o tipo de paridade que se aplicaría é a par, por iso é a máis usada e a que se entende por defecto.
Este código ten unha distancia mínima de 2, co cal só detecta erros simples. Detecta tamén erros si o número de bits erróneos é impar, pois se fose par un erro se compensaría co outro.
Por exemplo, se se desexa enviar a palabra 1001 o transmisor calcula o bit de paridade (0), deste xeito a palabra código que se envía é 10010. O receptor recibe 10011, este calcula de novo o bit de paridade e dálle (0) e el recibiu (1) co cal detecta o erro pero non o pode corrixir.
Paridade de bloque
Trátase de organizar a información por bloques, compoñendo unha táboa de k x m bits (k palabras de m bits cada unha).
Logo calcúlanse os bits de paridade de cada unha das m filas (paridade horizontal) e k columnas (paridade vertical).
Por último calculase o bit de paridade cruzada a partires da columna ou da fila de paridade calculada anteriormente.
Exemplo:
Neste caso o codificador fai bloques de 4 palabras de 6 bits cada unha, e calcula as distintas paridades, e logo as envía ao receptor, unha fila tras outra (Polo tanto, envía 5 palabras de código de 7 bits cada unha).
O decodificador reconstrúe o bloque e volve a calcular os bits de paridade correspondentes e compáraos cos bits de paridade recibidos.
Este código ten unha distancia mínima de 4, co cal corrixe erros simples e detecta erros dobres, triples e cuádruples se estes non forman un rectángulo na matriz de díxitos.
