UFSM-CTISMCÓDIGOS DEHAMMING              Comunicação de Dados                    Aula-17             CÓDIGOS DE HAMMING   ...
CÓDIGOS DE HAMMING             Definição:CÓDIGOS DE   Um código de Hamming adiciona um bloco de paridade aHAMMING          ...
Ideia             De todas as possíveis palavras de código, considerar comoCÓDIGOS DE             válidas apenas algumas.H...
Algebra Linear e Aritmética Modulo 2             Aritmética modulo 2:CÓDIGOS DE             Adição = XOR Produto = ANDHAMM...
Código de Hamming             Um código de Hamming (c,d ) é formado da seguinteCÓDIGOS DE   maneira:HAMMING             Co...
Detecção de erros             Como as palavras de código pertencem ao espaço nulo deCÓDIGOS DEHAMMING      H, é muito simp...
Correção de errosCÓDIGOS DEHAMMING      Detecta-se um erro quando Hr = 0. Como se pode saber             qual o erro que o...
Como escolher o número de bits de paridade?             O número de colunas de H é igual a 2p − 1, que deve ser           ...
Exemplo: Código de Hamming (7,4)             Palavras de código:              0000 000 0100 101       1000 011        1100...
Exemplo: Código de Hamming (7,4)             Palavras de código:              0000 000 0100 101      1000 011    1100 110C...
Desempenho dos códigos de Hamming                                            d    2p − p − 1CÓDIGOS DE   O Taxa de transmi...
Desempenho dos códigos de Hamming             Distância minima de uma código de HammingCÓDIGOS DE             pode ser det...
Desempenho dos códigos de Hamming             Distância minima de uma código de HammingCÓDIGOS DE             pode ser det...
Desempenho dos códigos de Hamming             capacidade de detecção             o número de erros que podem ser detectado...
Próximos SlideShares
Carregando em…5
×

Códigos de hamming

1.959 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.959
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
29
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Códigos de hamming

  1. 1. UFSM-CTISMCÓDIGOS DEHAMMING Comunicação de Dados Aula-17 CÓDIGOS DE HAMMING Professor: Andrei Piccinini Legg Santa Maria, 2012
  2. 2. CÓDIGOS DE HAMMING Definição:CÓDIGOS DE Um código de Hamming adiciona um bloco de paridade aHAMMING um bloco de dados, de forma a que, caso ocorram erros de transmissão, seja possível detectar ou corrigir erros do bloco transmitido. palavra código c – no bits transmitidos d – no bits de dados p – no bits de paridade dados paridade A implementação do codificador e do decodificador é muito simples, como se vai ver em seguida.
  3. 3. Ideia De todas as possíveis palavras de código, considerar comoCÓDIGOS DE válidas apenas algumas.HAMMING Exemplo: 000,111 011 001 PSfr 101 111 000 010 100 110 A distância mínima entre as palavras de código é de 3 bits (distância de Hamming). Se um bit for corrompido, o receptor detecta uma palavra de código inválida e pode recuperar o original escolhendo a palavra de código válida mais próxima.
  4. 4. Algebra Linear e Aritmética Modulo 2 Aritmética modulo 2:CÓDIGOS DE Adição = XOR Produto = ANDHAMMING Algebra linear: Seja A uma matriz n × m e x um vector de dimensão m. null(A), o espaço nulo de A, é o espaço gerado pelos vectores x que verificam Ax = 0. rank(A) é o no de linhas/colunas linearmente independentes. Temos que rank(null(A)) + rank(A) = m. Exemplo: 0 1 1 H= 1 0 1 rank(H) = 2; null(H) = 000,111, rank(null(H)) = 1; rank(H) + rank(null(H)) = 2 + 1 = 3.
  5. 5. Código de Hamming Um código de Hamming (c,d ) é formado da seguinteCÓDIGOS DE maneira:HAMMING Constroi-se uma matriz H cujas colunas são formadas por todos os vetores não nulos de dimensão p = c − d . O código de Hamming consiste no espaço nulo da matriz H, i.e., as palavras de código verificam Hc = 0. Exemplo: Código (3,1) -> 1 bit dados + 2 bits redundância 0 1 1 H= 1 0 1 O espaço nulo de H é composto pelos vetores [000] e [111] (Verifique!)
  6. 6. Detecção de erros Como as palavras de código pertencem ao espaço nulo deCÓDIGOS DEHAMMING H, é muito simples verificar se houve erro de transmissão: Basta verificar se a palavra recebida r pertence ao espaço nulo! Se Hr = 0, então r pertence ao espaço nulo → OK! Se Hr = 0, então r não pertence a null(H) → ERRO! Exemplo: Se c = 000 e r = 000, Hr = [00]′ → sem erros Se c = 000 e r = 001, Hr = [11]′ → erros detectados Se c = 000 e r = 101, Hr = [10]′ → erros detectados Se c = 000 e r = 111, Hr = [00]′ → sem erros Note que se existirem 3 erros é recebida uma palavra válida e não são detectados erros (não há milagres!)
  7. 7. Correção de errosCÓDIGOS DEHAMMING Detecta-se um erro quando Hr = 0. Como se pode saber qual o erro que ocorreu? Suponhamos que ocorreu um erro na posição i. Usando um vector ei = [0 . . . 010 . . . 0] para representar a posição onde ocorre o erro, temos que r = c + ei . Então, Hr = H(c + ei ) = Hc + Hei = Hei . Mas Hei corresponde à i-ésima coluna de H. Portanto, calculando Hr e procurando em H, obtemos a posição i onde ocorreu o erro. Para o corrigir, basta invertê-lo.
  8. 8. Como escolher o número de bits de paridade? O número de colunas de H é igual a 2p − 1, que deve ser compatível com a dimensão do vector r . EntãoCÓDIGOS DEHAMMING d + p = 2p − 1 Regra de Hamming d + p + 1 ≤ 2p Se a igualdade se verificar, diz-se que é um código perfeito. Os códigos de Hamming designam-se pelo par (c,d) Exemplos: p d c código 3 4 7 (7,4) 4 11 15 (15,11) 5 26 31 (31,26)
  9. 9. Exemplo: Código de Hamming (7,4) Palavras de código: 0000 000 0100 101 1000 011 1100 110CÓDIGOS DEHAMMING 0001 111 0101 010 1001 100 1101 001 0010 110 0110 011 1010 101 1110 000 0011 001 0111 100 1011 010 1111 111 Codificação: Pesquisar na tabela a palavra de código cujos 4 primeiros bits são os dos dados que se pretendem codificar. Adicionar a paridade correspondente. 1011 1011010 1010010 1011 Fonte Cod. Canal Decod. Hr = [100]′
  10. 10. Exemplo: Código de Hamming (7,4) Palavras de código: 0000 000 0100 101 1000 011 1100 110CÓDIGOS DEHAMMING 0001 111 0101 010 1001 100 1101 001 0010 110 0110 011 1010 101 1110 000 0011 001 0111 100 1011 010 1111 111 Codificação: Pesquisar na tabela a palavra de código cujos 4 primeiros bits são os dos dados que se pretendem codificar. Adicionar a paridade correspondente.   0 0 0 1 1 1 1 H = 0 1 1 0 0 1 1  1 0 1 0 1 0 1
  11. 11. Desempenho dos códigos de Hamming d 2p − p − 1CÓDIGOS DE O Taxa de transmissão é: R = =HAMMING c 2p − 1 Aumentando o tamanho das palavras de código, é possível fazer R → 1. No entanto, a probabilidade de erro na decodificação também converge para 1: A probabilidade de a decodificação ser correta corresponde a haver até um erro numa palavra de comprimento c. Num canal binário simétrico com probabilidade de erro pe a probabilidade de decodificação correta de um código (c, d), é dada por: (1 − pe )c + cpe (1 − pe )c−1 cujo limite é zero quando c → ∞.
  12. 12. Desempenho dos códigos de Hamming Distância minima de uma código de HammingCÓDIGOS DE pode ser determinado através da matriz H ou com umaHAMMING analise das palavras código. Calculando a distância minima através da matriz H: A distancia mínima do código será determinada pelo numero mínimo de colunas da matriz H que devem ser somadas para se obter o vetor nulo. Exemplo:   0 0 0 1 1 1 1 H= 0 1 1 0 0 1 1  1 0 1 0 1 0 1 A distancia mínima para o código cuja matriz H foi dada acima é 3, porque são necessaria a soma de no mínimo 3 colunas para obtermos o vetor nulo.
  13. 13. Desempenho dos códigos de Hamming Distância minima de uma código de HammingCÓDIGOS DE pode ser determinado através da matriz H ou com umaHAMMING analise das palavras código. Calculando a distância minima através das palavras código: A distancia mínima do código será determinada pela menos distancia entre duas palavras código lembrando que o vetor nulo sempre corresponde a uma palavra código. 0000000 0100101 1000011 1100110 0001111 0101010 1001100 1101001 Exemplo: 0010110 0110011 1010101 1110000 0011001 0111100 1011010 1111111 Se calcularmos as distâncias entre todas as palavras código o menor valor obtido corresponde a distância minima para o código. Nesse exemplo igual a 3.
  14. 14. Desempenho dos códigos de Hamming capacidade de detecção o número de erros que podem ser detectados utilizando umCÓDIGOS DEHAMMING código de Hamming dependerá da distancia minima (dMIN ) do código utilizado. e o número máximo de erros detectados será dado por: dMIN = ed + 1 ⇒ ed = dMIN − 1 capacidade de correção o número de erros que podem ser corrigidos utilizando um código de Hamming também dependerá da distancia minima (dMIN ) do código utilizado. e o número máximo de erros corrigidos será dado por: dMIN − 1 dMIN = 2ec + 1 ⇒ ec = 2

×