A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Códigos de Detecção e Correcção de erros Trabalho realizado por: Clara Dimene nº15589 Fiabilidade de Sistemas Informáticos.

Apresentações semelhantes


Apresentação em tema: "Códigos de Detecção e Correcção de erros Trabalho realizado por: Clara Dimene nº15589 Fiabilidade de Sistemas Informáticos."— Transcrição da apresentação:

1 Códigos de Detecção e Correcção de erros Trabalho realizado por: Clara Dimene nº15589 Fiabilidade de Sistemas Informáticos

2 Objectivos  Código de Hamming; o Definição o Codificação o Descodificação o Exemplos  Código de Redundância Cíclica; o Definição o Codificação o Descodificação  Código de Berger o Definição o Codificação

3 Codificação  Para enviar uma mensagem através de um canal de transmissão é necessário acrescentar redundância, ou seja codificar.  É uma das técnicas que suporta a tolerância a falhas em hardware,  É a adição de bits de verificação aos bits que contêm a informação de modo que os erros ocorridos em alguns bits possam ser detectados e se possível corrigidos;  O erro é detectado através da inconsistência na integridade estrutural dos dados

4 Codificação  Códigos comuns usados na tolerância a falhas em hardware:  Código de Hamming;  Código de Redundância Cíclica;  Código de Berger

5 Descodificação  Depois das palavras de código calculadas  ou seja, depois das mensagens terem sido codificadas e transmitidas no canal;  Têm de ser descodificadas  Temos que ver se a palavra recebida é uma palavra de código válida;  Se não for é porque a palavra contém erros;  Então temos que eliminar esses erros e obter a palavra de código transmitida;

6 Detecção e Correcção de Erros  É baseada na redundância - acréscimo do número de bits; Exemplo:  Palavra de dados:  Palavra código:  A sequência de bits a ser transmitida terá então um tamanho n = m + k. Esta sequencia é conhecida como palavra de código;

7 Detecção e Correcção de Erros  Se o número k de bits redundantes for suficientemente grande, alem da correcção é possível também a detecção;  A detecção e correcção de erros dependem da distância de Hamming do código completo;

8 Detecção e Correcção de Erros  Distância de Hamming  É o número mínimo de bits que diferem entre si quaisquer duas palavras do código.  Quando uma palavra de código chega ao destino é comparada com uma tabela contendo todas as possíveis instruções  tabela de descodificação.  A comparação é feita entre a palavra recebida e as palavras contidas na tabela de descodificação.

9 Detecção e Correcção de Erros Palavra de código Binária enviada Acção efectuada no destino [00000]Abre comporta da represa [01011]Fecha comporta [10101]Liga motor [11110]Desliga motor

10 Detecção e Correcção de Erros Suponhamos que é enviada num determinado instante a instrução [01011] fecha comporta; E por acção da interferência seja recebida no receptor a palavra binária [01001] ; O descodificador no receptor calcula as distâncias de Hamming entre a palavra recebida e todas as possíveis instruções válidas da tabela de descodificação.

11 Detecção de Erros Palavra de código BináriaDistância de Hamming da palavra de código recebida [01001] [00000]2 [01011]1 [10101]3 [11110]4

12 Detecção e Correcção de Erros A instrução originalmente transmitida é aquela que tem a menor distância de Hamming da palavra recebida com erro  é mais parecida com a palavra recebida. Logo o descodificador infere que a palavra originalmente transmitida é [01011]  menor distância de Hamming.

13 Detecção e Correcção de Erros  Detecção de n bits errados: é possível caso a distância de Hamming entre a palavra de dados e a palavra de código seja d = n+1.  Correcção de n bits errados : possível caso a distância de Hamming entre a palavra de dados e a palavra de código seja igual a d=2n +1.

14 Código de Hamming  Correctores de erros simples, ou seja permitem correcção automática de 1 bit errado;  Ou detectores de erros duplos;  A distância mínima é sempre 3(corrige um erro ou detecta 2 erros)

15 Código de Hamming  Os bits de verificação/paridade são potências de 2;  Bits de verificação são colocados de modo que a palavra recebida indique onde ocorreu o erro;  Todas as outras posições são bits de dados;  Bits da palavra de código são enumerados da esquerda para a direita;  Um bit de dados pode contribuir em diversos bits de verificação;

16 Código de Hamming  Exemplo prático:  Mensagem: (8 bits)  Palavra de código origem:  Bits de paridade: 1,2,4 e 8  Bits a 1: 12,7,6,3  Código de correcção (representado em binário): 1100(12) xor 0111(7) xor 0110(6) xor 0011(3) = (posição)

17 Código de Hamming- Detecção  Recepção sem erros  Transmissão:  Recepção: (12) xor 1000 (8) xor 0111 (7) xor 0110 (6) xor 0100 (4) xor 0011 (3) xor 0010 (2) = 0000

18 Código de Hamming - Detecção  Recepção com erros  Transmissão:  Recepção: (12) xor 1000 (8) xor 0111 (7) xor 0100 (4) xor 0011 (3) xor 0010 (2) = 0110(6)  indica a posição do bit errado

19 Código de Hamming - Correcção  A correcção é feita pela adição do bit complementar.  Transmissão:  Recepção:  Recepção após correcção:

20 Código de Redundância Cíclica  È usado para a detecção de erros durante a comunicação de dados.  O CRC também é conhecido como código polinomial, pois as strings de bits são tratadas como representações de polinómios com coeficientes 0 e 1.  Representa-se uma mensagem x com k-1 bits por um polinómio M (x) de grau n; Exemplo: M(x)  (x^10+x^9+x^7+x^5+x^4)

21 Código de Redundância Cíclica  G (x) é o polinómio gerador de grau n com n+1 bits;  A escolha de G (x) determina quais os tipos de erros que são detectados. Polinómio Gerador : (x^4+x^3+1)  G(x) Grau do Polinómio Gerador (n)=4  A mensagem a transmitir será: obtida pela relação  B (x)=M (x) x 2^n + R (x)  Divide-se B (x) por G (x);

22 CRC- Cálculo do Código no Transmissor  O resto R (x) é obtido pela relação: B (x) = G(x)*Q (x) + R (x)  A mensagem a ser enviada é obtida através da seguinte relação:  T (x)= B (x) - R (x) (XOR)  mensagem a enviar

23 CRC- Cálculo do Código no Transmissor

24 CRC- Detecção de Erros  Na recepção podem ocorrer duas situações: a) Caso chegue o polinómio – T(x)  Ao dividir T (x) por G (x) no receptor o resto é zero  Neste caso não houve erro de transmissão;  Note-se que uma cadeia com erros pode dar resto 0; mas se G(x) for bem escolhido isto é muito improvável

25 CRC- Detecção de Erros

26 b) Se houver um erro, a invés de chegar o polinómio T(x) chega T(x)+E (x)  Ao dividir T(x) + E (x) /G(x) o resto é diferente de zero;  Neste caso houve erro de transmissão;  Cada bit 1 em E (x) corresponde a um bit invertido;  T(x)/G(x) é sempre zero. O resultado é E (x)/G(x)  Todos os erros de bit isolado serão detectados porque E (x)= x i, onde i indica o bit com erro.

27 CRC- Detecção de Erros

28 Código de Berger  Contam-se os zeros que cada palavra contém, e adiciona- se o número aos bits de verificação para formar o código;  Se o comprimento da palavra for do tamanho k, o esquema de codificação precisa de log2 (k) extra bits.  O código de Berger detecta todos os códigos unidireccionais, inclusive aqueles que corrompem os bits de verificação.  Seja I o numero de bits de informação e k o número de bits de verificação;  Então k=log2(I+1).

29 Código de Berger  Exemplo:  Código de Berger para a palavra  Seja I= 7 bits de informação  Se k = log2(7 + 1)= 3 bits de verificação (valor absoluto)  4 bits em binário  100  Complemento de 100  011  Bits de verificação obtidos = 011  O código de Berger para é

30 Conclusão  Distância de Hamming;  A distância mínima dmin de um código é a mais pequena distância de Hamming entre duas palavras de código válidas.  A detecção de erros é sempre possível quando o número de erros de transmissão numa palavra de código é menor que dmin.  Se número de erros é maior ou igual a dmin, a palavra com erros pode corresponder a palavras válidas e os erros não são detectados.

31 Conclusão  Código de Hamming;  Prevê a criação de bits redundantes, inserindo-os em determinadas posições do byte.  Este código é capaz de detectar erros duplos e corrigir erros simples. Muitos chips de memória para semicondutores usam estes códigos.  O uso deste código torna-se eficiente, em termos do número de bits necessários relativamente ao número de bits de dados, á medida que o comprimento da palavra aumenta.

32 Conclusão  Código de Redundância Cíclica;  Todos os erros de 1 bit;  Todos os erros de 2 bits se o grau de C (x) é superior a 3;  Todas as situações em que há um número ímpar de erros, desde que C (x) tenha os termos k + 1;  Todos os “burst errors” até m bits se C (x) é de grau m  “Burst errors” de comprimento maior ou igual a 16 bits

33 Conclusão  Código de Berger;  Detecta erros unidireccionais de entre todos os códigos nos quais a informação e os bits de verificação possam ser separados.  Este código apresenta o menor número de bits de verificação comparado com outros códigos separáveis.  Uma alternativa a este código pode ser obtida pela contagem do número de 1s em cada palavra e acrescentar o complementar um a um como bits de verificação.

34 Thanks!! Questions!!!


Carregar ppt "Códigos de Detecção e Correcção de erros Trabalho realizado por: Clara Dimene nº15589 Fiabilidade de Sistemas Informáticos."

Apresentações semelhantes


Anúncios Google