Você está na página 1de 16

ERROS E CDIGOS DE DETECO

UNIVERSIDADE FEDERAL DO ABC

NATUREZA DA INFORMAO Prof. Luiz Gustavo Bizarro Mirisola q3 2011


Turma H Elaine Coelho Joyce Louise Leandro Sorrenti Rafael Assis Victor Oshiro

Sumrio

pginas

1. Resumo.................................................................................................................................... 3 2. Introduo................................................................................................................................. 3 3. Movimentao de Dados Binrios e Erros............................................................................... 3 4. Mtodo da Paridade para Deteco de Erro............................................................................ 5 5. O cdigo de Correo de Erro Hamming................................................................................ 8 5.1. Deteco e Correo de Erro com o Cdigo de Hamming..................................................12 Exerccios resolvidos...........................................................................................................13 Consideraes finais...........................................................................................................15 6. Referncias Bibliogrficas.......................................................................................................16

[2]

1. Resumo Este trabalho, em formato livro-texto, tem por objetivo apresentar de forma direta e esclarecida a problemtica dos erros incidentes nos sistemas digitais na transferncia de informaes. Ser sintetizado em modelo explicativo, alguns dos mtodos mais importantes, e tambm simples, acerca das estratgias para deteco e correo de erros.

2. Introduo Em informtica, telecomunicaes e afins, mais concretamente em uma transmisso de dados entre sistemas digitais, um erro um "defeito" na mensagem/informao a ser transmitida, fazendo com que esta seja modificada para um valor que no corresponde ao da original, o que extremamente inconveniente. A deteco e correo de erros em

uma comunicao de dados crucial para que esta seja feita de uma forma correta e imune a falhas.

3. Movimentao de Dados Binrios e Erros A movimentao de dados binrios e de cdigos de um lugar para outro a operao mais frequentemente realizada em sistemas digitais. Aqui esto alguns exemplos: - A transmisso de voz digitalizada em centrais telefnicas. - A gravao e recuperao de dados de dispositivos de memria externa como fitas e discos magnticos.

[3]

- A transmisso de informao de um computador para um terminal de um usurio remoto ou para outro computador atravs das linhas telefnicas (usando um modem).

Por que ocorrem os erros?


Sempre que uma informao transmitida de um dispositivo (o transmissor) para outro dispositivo (o receptor), existe a possibilidade de que erros ocorram de modo que o receptor no receba a informao idntica quela que foi enviada pelo transmissor. - Um link de comunicao pode romper; - O sinal se atenua ao longo de grandes distncias; - Uma linha telefnica pode ter muito rudo; - Uma posio de memria (uma clula) pode falhar; - etc... A causa principal de erros de transmisso, por exemplo, so rudos

eltricos que consistem em flutuaes de tenso ou corrente que esto


presentes em diferentes graus em todos os sistemas eletrnicos. A figura 1 uma ilustrao simples de um tipo de erro de transmisso.

Figura 1- Exemplo de rudo causando um erro na transmisso de dados digitais

[4]

O transmissor envia uma linha de sinal digital serial relativamente livre de rudos atravs de uma linha de sinal para o receptor. Entretanto, quando o sinal atinge o receptor, ele contm certo nvel de rudo sobreposto ao sinal original. A maioria dos equipamentos digitais modernos projetada para ser relativamente livre de erros e a probabilidade de que eles ocorram como mostrado na figura 1 muito baixa. Entretanto, devemos compreender que sistemas digitais frequentemente transmitem milhares, ou mesmo milhes, de bits por segundo, como ocorre, por exemplo, na transmisso de sinais de TV, e assim mesmo uma taxa de ocorrncia de erros muito baixa pode produzir um erro ocasional que pode ser incmodo, ou mesmo um desastre. Por essa razo, muitos sistemas digitais empregam algum mtodo para deteco (e geralmente correo) de erros.

4. Mtodo da Paridade para Deteco de Erro Muitos sistemas usam um bit de paridade como um meio de deteco de

erro de bit. A paridade de um bloco de bits considerada par se o nmero de


bits com valor lgico 1 for par e mpar se este nmero for mpar. Um cdigo de paridade constitudo por n bits, dos quais n-1 so bits de informao, sendo adicionado um bit de modo a garantir a paridade desejada. Ao conjunto dos bits de informao e bit de paridade denomina-se palavra de cdigo. Um dado sistema pode operar com paridade par ou mpar, porm no ambas. Por exemplo, se um sistema opera com paridade par, feita uma verificao em cada grupo de bits recebido para certificar-se de que o nmero total de 1s no grupo seja par. Caso exista um nmero mpar de 1s, ocorreu um erro. Como uma ilustrao da forma com que os bits de paridade so acrescentados a um cdigo, a Tabela 1 apresenta uma lista dos bits de
[5]

paridade para cada nmero BCD, tanto para a paridade par quanto para a mpar. O bit de paridade para cada nmero BCD est na coluna P.

Tabela 1- O cdigo BCD com bits de paridade

Paridade par P 0 1 1 0 1 0 0 1 1 0 BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Paridade mpar P 1 0 0 1 0 1 1 0 0 1 BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

O bit de paridade pode ser acrescentado ao incio ou final do cdigo, dependendo do projeto do sistema. Observe que o nmero total de 1s, incluindo o bit de paridade, sempre par para a paridade par e sempre mpar para a paridade mpar.

Deteco de um erro - Um bit de paridade prov a deteco de erro em um


nico bit (ou qualquer nmero mpar de erros, que bem pouco provvel) mas no pode verificar dois erros em um grupo. Por exemplo, vamos supor que desejamos transmitir o cdigo BCD 0101. (A paridade pode ser usada com qualquer nmero de bits: estamos usando quatro bits como ilustrao.) O cdigo total transmitido, incluindo o bit de paridade par, :

[6]

Agora vamos admitir que ocorra um erro no terceiro bit a partir da esquerda (o 1 vira 0).

Quando esse cdigo recebido, o circuito de verificao de paridade determina a existncia de apenas um nico 1 (paridade mpar), quando deveria haver um nmero par de 1s. Devido ao nmero par de 1s no aparecer no cdigo recebido, indicado um erro. Um bit de paridade mpar tambm prov uma forma de deteco de erro em um nico bit, em um dado grupo de bits. O erro detectado, mas no pode ser corrigido, devido distncia de Hamming, o nmero de posies nas quais duas palavras diferem entre si. Vista de outra forma, ela corresponde ao menor nmero de substituies necessrias para transformar uma palavra na outra, ou o nmero de erros que transformaram uma na outra.

Figura 2- Hipercubo cubo binrio de 4 bits para determinar a distncia de Hamming

[7]

Figura 3- Dois exemplos desta distncia: 0100->1001 tem distncia 3 (caminho vermelho); 0110->1110 tem distncia 1 (caminho azul)

Exemplos:
A distncia de Hamming entre:

"elabore" e "melhore" 4. 2173896 e 2233796 3. 11011 e 10011 1.

5. O cdigo de Correo de Erro Hamming Conforme estudado, um nico bit de paridade permite a deteco de erro em um nico bit em uma palavra de cdigo. Um nico bit de paridade pode indicar que existe um erro em um certo grupo de bits. Para corrigir um erro detectado, mais informao necessria porque a posio do bit errado tem que ser identificada antes que ele possa ser corrigido. Mais do que um bit de paridade tem que ser includo no grupo de bits para tornar possvel a correo do erro detectado. Em um cdigo de 7 bits, existem sete possibilidade de erro em um nico bit. Nesse caso, trs bits de paridade podem no apenas detectar um erro, mas podem especificar a posio do bit errado. O cdigo Hamming prov a correo de um nico erro. A abordagem a seguir ilustra a construo de um cdigo Hamming de 7 bits para a correo de um nico erro.

[8]

Nmero de Bits de Paridade Se o nmero de bits de dados projetados for d,


ento o nmero de bits de paridade, p, deve obedecer seguinte relao, que usada para determinar o mnimo de bits de paridade necessrio:

2Pd+p+1 (I)
Por exemplo, se temos quatro bits de dados, ento p determinado por tentativa e erro por meio da Equao anterior. Faamos p=2. Ento:

2P = 22 = 4 d+ p+ 1= 4+2 +1= 7
Como 2P tem que ser igual ou maior a d+p+1, a relao na equao (I) no satisfeita. Temos que tentar novamente. Faamos p=3. Ento: 2p = 2 3 = 8 d+ p+ 1= 4+ 3+ 1= 8 Esse valor de p satisfaz a equao (I), assim so necessrios trs bits de paridade para proporcionar a correo de um nico erro para quatro bits de dados. Deve-se notar que podemos detectar e corrigir erros tanto nos bits de dados quanto nos prprios bits de paridade transmitidos. Isso ocorre porque os trs bits de paridade possuem oito combinaes possveis, ou seja, uma delas indica a ausncia de erro quando todas as paridades so satisfeitas corretamente. As sete combinaes restantes indicam erros em cada um dos sete bits. Se considerarmos cada bit p como certo (C) ou errado (E), temos oito combinaes de C ou E.

[9]

Tabela 2- Possveis combinaes dos trs bits de paridade

P3 C C C C E E E E

P2 C C E E C C E E

P1 C E C E C E C E

POSIO DO ERRO 0 (sem erro) 1 2 3 4 5 6 7

Se os trs bits da tabela estiverem certos, no houve erro. Se houver algum erro, considerando cada valor E na tabela como um bit 1, ento formamos o valor binrio correspondente posio do erro. Isso s possvel porque cada bit de paridade vigia um conjunto de bits diferente, de modo que cada bit est em uma interseco diferente destes conjuntos, afetando assim um conjunto diferente de bits de paridade.

Figura 4- Descrio grfica de 4 bits de dados (X3, X5, X6 e X7) e 3 bits de paridade (X1, X2 E X4)

Na figura acima X1, X2 e X4 so bits de paridade e os que esto no centro so os bits de dados.
[10]

Por exemplo, se X3 muda, teremos duas paridades erradas, ou seja, seria necessrio mudar dois bits na palavra para obter uma nova informao vlida. O nico modo de alterar apenas um bit na palavra cdigo seria corrigindo o prprio X3. O mesmo ocorre com X5 e X6. Analogamente, se X2 muda, as paridades de X3, X6 e X7 ficam erradas, mas corrigindo o prprio X2 teremos novamente palavras validas. Qualquer outro bit que mudarmos no valida a palavra, porque mesmo que corrija a paridade de X2, quebra uma das outras paridades. O mesmo ocorre para X1 e X4. Se X7 muda, todas as trs paridades ficam erradas ficam erradas. Nenhum outro bit pode ser mudado para validar todas as paridades. No entanto, podemos alcanar outras palavras vlidas se mudarmos X7 (valida X1 e X4) e X2 (valida o prprio X2).

Insero de Bits de Paridade no Cdigo Agora que sabemos determinar o


nmero de bits de paridade necessrios no nosso exemplo particular, temos que arranjar os bits adequadamente no cdigo. Devemos saber que nesse exemplo o cdigo composto de quatro bits de dados e trs bits de paridade. O bit mais esquerda designado como bit 1, o prximo bit o 2 e assim por diante, conforme a seguir: bit 1, bit 2, bit 3, bit 4, bit 5, bit 6, bit 7 Os bits de paridade esto localizados nas posies que so numeradas em correspondncia s potencias de dois ascendentes (1, 2, 4, 8, ....), conforme indicado: P1, P2, D1, P3, D2, D3, D4 O smbolo Pn designa um bit de paridade em particular e Dn designa um bit de dado em particular.
[11]

5.1. Deteco e Correo de Erro com o Cdigo de Hamming Cada bit de paridade, ao longo dos seus grupos de bits correspondentes, tem que ser verificado para a paridade adequada. Caso existam trs bits de paridade na palavra de cdigo, so geradas trs verificaes. Caso existam quatro bits de paridade, so geradas quatro verificaes, e assim por diante. Cada verificao de paridade apresenta um resultado bom ou ruim. O resultado total de todas as verificaes de paridade indica o bit, se houver algum, que est errado, como a seguir: Passo 1 Comece com o grupo verificado por P1. Passo 2 Verifique o grupo quanto paridade correta. Um 0 representa uma verificao de paridade correta e um 1 representa uma verificao incorreta. Passo 3 Repita o passo 2 para cada grupo de paridade. Passo 4 O nmero binrio formado pelo resultado de todas as verificaes de paridade determina a posio do bit do cdigo que est errado. Esse o

cdigo de posio de erro. A primeira verificao de paridade gera o bit menos


significativo (LSB). Se todas as verificaes forem corretas, no h erro.

Exemplo: Considere que a palavra de cdigo 0011001 seja transmitida e que


0010001 seja recebida. O receptor no sabe o que foi transmitido e tem que testar as paridade para determinar se o cdigo est correto. Determine qualquer erro que tenha ocorrido na transmisso se a paridade usada foi a par.

Soluo Primeiramente, faa uma tabela de posio de bit, conforme indicado


na Tabela 2:

[12]

Tabela 3- Tabela de posicionamento de bits para um cdigo de correo de erro de 7 bits

Designao dos BITS Posio dos BITS Nmero da posio em Binrio Cdigo recebido

D4 7 111 1

D3 6 110 0

D2 5 101 0

P3 4 100 0

D1 3 011 1

P2 2 010 0

P1 1 001 0

Primeira verificao de paridade:


O bit P1 verifica as posies 1, 3, 5 e 7; existem dois 1s nesse grupo; a verificao de paridade correta 0 (LSB)

Segunda verificao de paridade:


O bit P2 verifica as posies 2, 4, 6 e 7; existem dois 1s nesse grupo; a verificao de paridade correta 0

Terceira verificao de paridade:


O bit P3 verifica as posies 4, 5, 6 e 7; existe um 1 nesse grupo; a verificao de paridade incorreta 1 (MSB)

Resultado: O cdigo de posio de erro 100 (binrio quatro). Isso diz que o
bit na posio 4 est errado. Ele o 0 e deveria ser 1. O cdigo corrigido 0011001, que est de acordo com o cdigo transmitido.

Exerccios resolvidos 1- Associe o bit de paridade par apropriado para os seguintes cdigos: (a) 1010 (c)101101 (b)111000 (d)100011100100

Soluo:
[13]

Faa o bit de paridade 0 ou 1 conforme o necessrio para tornar o nmero total de 1s par. O bit de paridade ser o bit mais esquerda (colorido) (a)01010 (b)1111000 (c)0101101 (d)0100011100100

2- Um sistema de paridade mpar recebe os seguintes grupos de cdigo: 10110, 11010, 110011, 110101110100 e 1100010101010. Determine quais grupos, se houver algum, esto com erro.

Soluo:
Como informado que a paridade mpar, qualquer grupo com um nmero par de 1s est incorreto. Os seguintes grupos esto com erro: 110011 e 1100010101010.

3- Determine o cdigo de Hamming para o nmero BCD 1001 (bits de dados), usando paridade par.

Soluo: Passo 1: determine o nmero de bits de paridade necessrios. Faamos p= 3,


ento: 2p= 22= 8 D+p+1= 4+ 3+ 1= 8 Trs bits de paridade so suficientes. Total de bits de cdigo: 4+ 3= 7

Passo 2: construa uma tabela


[14]

Designao dos bits P1 Posio dos bits binrio Bits de dados Bits de paridade 0 1 N da posio em 001

P2 2 010

D1 3 011 1

P3 4 100

D2 5 101 0

D1 6 110 0

D4 7 111 1

Passo 3: Determine os bits de paridade como a seguir:


O bit P1 verifica os bits das posies 1,3,5 e 7 e tem que ser 0 para que o nmero de 1s (2) seja par nesse grupo. O bit P2 verifica os bits das posies 2,3,6 e 7 e tem que ser 0 para que o nmero de 1s (2) seja par nesse grupo. O bit P3 verifica os bits das posies 4,5,6 e 7 e tem que ser 1 para que o nmero de 1s (2) seja par nesse grupo.

Passo 4: Esses bits de paridade so inseridos na tabela 2-12 e o cdigo


combinado resultante 0011001. Observao: Para visualizar como ocorre a deteco e correo de erros, acesse um simulador virtual do cdigo de Hamming em /http/ candle. ctit.utwente.nl/wp5/telsys/exercises/datalinkp2p/hamming74demo.html. Consideraes Finais Em virtude dos assuntos abordados neste livro-texto, de se esperar que o contedo explanado possa servir como auxlio aos futuros estudantes da disciplina Natureza da Informao, de modo que sua estrutura sirva como material de apoio, facilitando a compreenso do tema.

[15]

6. Referncias Bibliogrficas
[1] Thomas Floyd, 2007. SISTEMAS DIGITAIS - FUNDAMENTOS E APLICAOES. Bookman, 9 ed. p.111. [2] Ronald J. Tocci, Neal S. Widmer, 1998. DIGITAL SYSTEMS: PRINCIPLES AND APPLICATIONS. Prentice-Hall, Inc., a Simon & Schuster company. [3] Equipe de professors de Natureza da Informao, 2011. NOTAS DE AULA BC-0504, Natureza da Informao. Aula 3.

[4] http://www.ele.puc-rio.br/~micro/SLIDES/Codigos.pdf ( acessado em 25/11/2011 - 16h30) [5] Mirisola, Luiz Gustavo, 2011. [6 ] http://www.lee.eng.uerj.br/~gil/redesII/Tecnicas%20de%20Detecao%20e%20Correcao%2 0de%20Erros.pdf (acessado em 10/12/ 2011- 21h15)

[16]

Você também pode gostar