Você está na página 1de 29

Cdigos de Deteco e Correco de Erros

Sistemas Distribudos e Tolerncia a Falhas


Manuela Rodrigues M1379

Deteco e Correco de Erros


Caractersticas dos Erros Possveis Abordagens Cdigos de Deteco de Erros:
Paridade, Checksum, CRC (Cyclic Redundancy Check)

Cdigos de Deteco e Correco de Erros


Correo de erros isolados: Cdigo de Hamming Correo de erros em rajada (burst): BCH, ReedSolomon, Reed-Muller, Golay

Erros (1)
Um sistema de computao funciona em funo da transferncia de informao desde o nvel de circuito integrados at aos nveis mais altos, como por exemplo gravao no disco ou comunicao entre computadores. Est sujeito a diversos erros, como os causados por interferncias electromagnticas, envelhecimento de componentes, curto-circuitos, ...

Erros (2)
Caractersticas dos erros
1. 2.

3.

So inevitveis em qualquer sistema de comunicao real; A distribuio dos erros no homognea: bits isolados ou em rajadas (bursts) de erros, com 8 ou mais bits sucessivos errados; Deve-se levar em conta o meio fsico de transmisso de dados, para incluir maior ou menor redundncia na transmisso, a fim de garantir que a informao recebida seja confivel.

Erros (3)
Possveis abordagens no tratamento de erros:
1. 2. 3. 4. 5.

Ignorar o erro; Eco (transmisso origem de reflexos dos dados recebidos); Sinalizar o erro; Detectar e solicitar a retransmisso em caso de erro; Detectar e corrigir os erros na recepo de forma automtica.

Cdigos de Deteco de Erros


Cdigos de Deteco de Erros
Detectar um erro uma tarefa mais simples do que detectar e corrigir; Nem sempre possvel solicitar uma retransmisso; Todos os mtodos utilizam a insero de bits extras;
(Esses bits podem ser obtidos a partir da informao original e o receptor recalcula os bits extras)

Um mtodo ineficiente mas muito utilizado para detectar erros a Paridade; Um mtodo mais eficiente o uso de um cdigo polinomial ou CRC (Cyclic Redundancy Check);

Deteco de Erros Paridade (1)


Paridade
Consiste basicamente no acto do transmissor adicionar um bit de redundncia aps um determinado nmero de bits (normalmente um byte):
n par de 1s paridade par n impar de 1s paridade impar

000, 011, 101, 110 so mensagens transmitidas sem erro, tendo em conta que o ltimo bit o de paridade

Deteco de Erros Paridade (2)


Exemplo1:
O caracter A no cdigo ASCII representado por 1000001 O bit P de paridade calculado e transmitido:
1000001P n par de 1s se 10000010 P = 0 (paridade par ), logo transmite-

O receptor calcula a paridade da mensagem e compara-a com o bit P recebido: P = paridade transmisso correcta

Deteco de Erros Paridade (4)


Este processo pode ser vulnervel se houver mais do que um erro, permitindo assim que este passe at ao destino sem ser identificado. Exemplo: 11010010 devolve valor 0 mas existe erro

Usada em muitas aplicaes de hardware (onde uma operao pode ser repetida em caso de dificuldade, ou onde til a simples deteco de erros). Exemplo: Bus PCI e SCSI.

Deteco de Erros Checksum


(1)

Checksum
Consiste na transmisso de todas as palavras juntamente com o resultado da sua soma binria.
Inclui o bit de transporte. Inverso do valor dos bits do checksum.
A B Soma 0 0 0 1 1 0 1 1 0 1 1 0 Transporte 0 0 0 1

Deteco de Erros Checksum


(2)

Exemplo:
checksum de 2 palavras de 8 bits

Dados iniciais: 00111101 00001101 Checksum : 01001010 Checksum invertido: 10110101

Deteco de Erros Checksum


(3)

Dados enviados:
00111101 00001101 10110101 (checksum invertido)

No receptor, as palavras so novamente somadas e comparadas com o checksum enviado:


Se qualquer um dos dados transmitidos, incluindo o checksum, sofrerem algum erro ento, a soma do novo checksum com o checksum enviado, ser diferente de 1.

0 1 0 0 1 0 1 0 novo checksum (das palavras iniciais recebidas) 1 0 1 1 0 1 0 1 checksum enviado 1 1 1 1 1 1 1 1 sem erro

Deteco de Erros Checksum


(3)

Exemplo com erro: 00110001 00001101 0 0 1 1 0 1 1 0 novo checksum 1 0 1 1 0 1 0 1 checksum enviado 11101011 11111111 valor recebido incorrectamente, com erro no 3 ou 5 bit (de qualquer uma das palavras enviadas, incluindo o checksum)

Deteco de Erros CRC (1)


CRC (Cyclic Redundancy Check)
Esquema mais eficiente Emissor/receptor concordam num polinmio gerador G(x), em que quanto maior for o seu grau maior ser a capacidade de deteco de erros Neste polinmio tanto o bit de maior ordem quanto o de menor ordem devem ser iguais a 1 Palavra inicial de k bits representado por um polinmio de X de ordem k-1
palavra inicial = 10110001 polinmio = X7+X5+x4+1

Deteco de Erros CRC (2)


Execuo: o polinmio p(x) representado pela palavra inicial somada aos bits de paridade e deve ser divisvel por G(x); O receptor tenta dividir p(x) por G(x). Se houver resto 0, houve um erro de transmisso; Se houver um erro, em vez de se receber o polinmio T(x), recebe-se T(x)+E(x); Cada bit 1 em E(x) corresponde a um bit invertido; T(x)/G(x) sempre zero, logo o resultado E(x)/G(x).

Deteco de Erros CRC (3)


Exemplo:
Mensagem a transmitir:10111011 Polinmio gerador G(X) = x4+x+1 10011 Acrescenta-se mensagem inicial, a quantidade de zeros equivalentes ao grau de G(x), ficando: 10111011 0000 Seguidamente divide-se a mensagem (ponto anterior) pelo polinmio gerador
A diviso de dois polinmios (na sua forma binria) feita recorrendo operao XOR ()

Deteco de Erros CRC (4)


101110110000 10011 0010001 10011 00010100 10011 0011100 10011 01111

Resto da Diviso

O resto que da diviso finalmente adicionado mensagem original, pelo que a mensagem transmitida ser: 101110111111

Deteco de Erros CRC (5)


Para descodificar a mensagem, o procedimento deve ser repetido. 101110011111 10011 0010000 10011 00011111 10011 011001 10011 010101 10011 00110 0, logo a mensagem foi recebida com erro

Cdigos de Deteco e Correco de Erros


Cdigos de Correco de Erros
Cdigos de correco podem recuperar o dado original a partir do cdigo com erros; Consistem na criao de cdigos extras que detectam situaes invlidas mas que mantm a identidade do dado original; O conceito mais bsico e mais importante desses cdigos a distncia de Hamming, utilizada para a criao de cdigos de correco.

Deteco e Correco de Erros Hamming (1)


Erros isolados Cdigos de Hamming - Codificao:
Os bits da palavra de cdigo so numerados a partir da esquerda, comeando por 1; 2. acrescentada informao redundante em posies prdefinidas, ou seja, os bits que so potncia de 2 vo ser bits de controlo (2n); 3. Os restantes so preenchidos com k bits de dados conhecidos, isto , com a mensagem a transmitir; Mensagem: 10010 2=21 3 1=2 4=22 5 6 7
1.
1 passo 2 passo 3 passo 1 ? ? 0 ? ? 1 0 1 ? ? 0 0 1

Deteco e Correco de Erros Hamming (2)


4.

Clculo dos bits de controlo, isto , converso para binrio das posies 2n e valor=1; 3 011 7 111 Aplicao do OR Exculsivo (XOR - ) aos valores obtido no ponto anterior 0 1 1 1 1 1 1 0 0 3 2 1

5.

Deteco e Correco de Erros Hamming (3)


6.

Insero dos valores obtidos nas respectivas posies do bits de paridade (ponto 2.)
1=20 1 passo 2 passo 3 passo 6 passo 1 ? ? 0 2=21 0 ? ? 0 1 1 3 1 4=22 0 ? ? 1 0 0 0 0 1 1 5 6 7

7.

Mensagem a transmitir: 0011001

Deteco e Correco de Erros Hamming (4)


Cdigos de Hamming - Descodificao:
Converso para binrio das posies = 1; 2. Aplicao do OR Exculsivo (XOR - ) aos valores obtido no ponto anterior: Se o resultado for = 0, no houve erros na transmisso Se for 0, o resultado obtido convertido para decimal igual posio do erro
1.

Deteco e Correco de Erros Hamming (5)


Sem erro: 0 0 1 1 0 0 1
3 4 7

Com erro: 0 0 0 1 0 0 1
4 7

Cdigo Correcto: 0011001

Deteco e Correco de Erros Burst errors


Erros em rajada Burst Errors
Conjunto de smbolos, recebidos sobre um canal de transmisso de dados, em que o primeiro e ltimo smbolo so erros, e entre eles existe uma sequncia de smbolos correctamente recebidos. O tamanho da rajada (burst) de erros definida pelo n de bits, desde o 1 erro at ao ltimo (inclusive).
O vector de erros B = (0 0 0 0 1 0 1 1 0 1 0 0 0 0 0) tem tamanho 6

Deteco e Correco de Erros BCH


Cdigos BCH (Bose - Chaudhuri - Hocquenghem):
Um cdigo BCH um cdigo polinomial, cclico, detector e corrector de erros de tamanho varivel. Estes cdigos so a generalizao dos cdigos de Hamming, ou seja, t 1 Aplicaes: Telefone VoIP, Modems Digitais Referncias:
Farrel, Patrick Guy Essentials of Error Control Coding Purser, Michael Introduction to Error Correcting Codes Wallace, Hank Error Detection and Correction Using the BCH Code

Deteco e Correco de Erros Reed-Solomon


Cdigos Reed-Solomon:
Os Cdigos Reed-Solomon constituem uma sub-classe dos Cdigos BCH. Aplicaes: Gravao de CDs e DVDs, Modems de alta velocidade (ADSL), Televiso digital (DVB) Referncias:
Farrel, Patrick Guy Essentials of Error Control Coding Purser, Michael Introduction to Error Correcting Codes

Deteco e Correco de Erros Reed-Muller


Cdigos Reed-Muller:
Os cdigos Reed-Muller fazem parte dos cdigos de correco de erros mais antigos. Aplicaes: Inventados em 1954 e utilizados em 1972 pelo Mariner 9 para transmitir fotografias, a preto e branco, de Marte. Referncias:
http://www-math.mit.edu/phase2/UJM/vol1/COOKE7FF.PDF http://ocw.usu.edu/Electrical_and_Computer_Engineering/Error_ Control_Coding/lecture9.pdf

Deteco e Correco de Erros Golay


Cdigos Golay:
O cdigo Golay um cdigo perfeito linear de correco de erros. Aplicaes: Voyager 1 (1979) e 2 (1980), que precisavam de transmitir centenas de fotografias a cores de Jpiter e Saturno, com telecomunicaes de largura de banda muito restritas. Referncias:
http://www.quadibloc.com/crypto/mi0602.htm http://mathworld.wolfram.com/GolayCode.html

Você também pode gostar