SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
UFSM-CTISM



CÓDIGOS DE
HAMMING
              Comunicação de Dados
                    Aula-17
             CÓDIGOS DE HAMMING

                     Professor:
                 Andrei Piccinini Legg



                  Santa Maria, 2012
CÓDIGOS DE HAMMING

             Definição:
CÓDIGOS DE   Um código de Hamming adiciona um bloco de paridade a
HAMMING
             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.
Ideia


             De todas as possíveis palavras de código, considerar como
CÓ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.
Algebra Linear e Aritmética Modulo 2

             Aritmética modulo 2:
CÓDIGOS DE
             Adição = XOR Produto = AND
HAMMING

             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.
Código de Hamming


             Um código de Hamming (c,d ) é formado da seguinte
CÓ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!)
Detecção de erros


             Como as palavras de código pertencem ao espaço nulo de
CÓDIGOS DE
HAMMING      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!)
Correção de erros



CÓDIGOS DE
HAMMING      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.
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ão
CÓDIGOS DE
HAMMING
             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)
Exemplo: Código de Hamming (7,4)

             Palavras de código:
              0000 000 0100 101       1000 011        1100 110
CÓDIGOS DE
HAMMING       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]′
Exemplo: Código de Hamming (7,4)

             Palavras de código:
              0000 000 0100 101      1000 011    1100 110
CÓDIGOS DE
HAMMING       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
Desempenho dos códigos de Hamming


                                            d    2p − p − 1
CÓ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 → ∞.
Desempenho dos códigos de Hamming

             Distância minima de uma código de Hamming
CÓDIGOS DE
             pode ser determinado através da matriz H ou com uma
HAMMING      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.
Desempenho dos códigos de Hamming

             Distância minima de uma código de Hamming
CÓDIGOS DE
             pode ser determinado através da matriz H ou com uma
HAMMING      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.
Desempenho dos códigos de Hamming

             capacidade de detecção
             o número de erros que podem ser detectados utilizando um
CÓDIGOS DE
HAMMING      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

Mais conteúdo relacionado

Mais procurados

2017 aula fisica atomica e nuclear i
2017 aula fisica atomica e nuclear i2017 aula fisica atomica e nuclear i
2017 aula fisica atomica e nuclear i
IPEN - CNEN / SP
 
Tic 3 a win02 exercicio pratico windows
Tic 3 a win02   exercicio pratico windowsTic 3 a win02   exercicio pratico windows
Tic 3 a win02 exercicio pratico windows
ax33poa
 
Lista de exercicios de mat financeira juros compostos resolvidos 1
Lista de exercicios de mat financeira juros compostos resolvidos 1Lista de exercicios de mat financeira juros compostos resolvidos 1
Lista de exercicios de mat financeira juros compostos resolvidos 1
Maxlenon Gonçalves Costa
 
Qq plot
Qq plotQq plot
Qq plot
weneca
 
Unidade 04 - Estatística - Medidas de dispersão.ppt
Unidade 04 - Estatística - Medidas de dispersão.pptUnidade 04 - Estatística - Medidas de dispersão.ppt
Unidade 04 - Estatística - Medidas de dispersão.ppt
CrobelEtiquetas
 
4- Aula 4 -Unidades e Escalas- 2012.2_turma 1.8421.1M (1).ppt
4- Aula 4 -Unidades e Escalas- 2012.2_turma 1.8421.1M (1).ppt4- Aula 4 -Unidades e Escalas- 2012.2_turma 1.8421.1M (1).ppt
4- Aula 4 -Unidades e Escalas- 2012.2_turma 1.8421.1M (1).ppt
Elderfranklis1
 
Tabela derivadas integral
Tabela derivadas integralTabela derivadas integral
Tabela derivadas integral
Lidia Tiggemann
 
Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,
H P
 
3 probabilidade
3   probabilidade3   probabilidade
3 probabilidade
Meireles01
 

Mais procurados (20)

Algoritmos - Aula 06 B - Tomada de Decisao - Exercicios - Resolucao
Algoritmos - Aula 06 B - Tomada de Decisao - Exercicios - ResolucaoAlgoritmos - Aula 06 B - Tomada de Decisao - Exercicios - Resolucao
Algoritmos - Aula 06 B - Tomada de Decisao - Exercicios - Resolucao
 
2017 aula fisica atomica e nuclear i
2017 aula fisica atomica e nuclear i2017 aula fisica atomica e nuclear i
2017 aula fisica atomica e nuclear i
 
Tic 3 a win02 exercicio pratico windows
Tic 3 a win02   exercicio pratico windowsTic 3 a win02   exercicio pratico windows
Tic 3 a win02 exercicio pratico windows
 
Material de apoio estatística 2017 1
Material de apoio estatística 2017 1Material de apoio estatística 2017 1
Material de apoio estatística 2017 1
 
Cablagem estruturada: CEF
Cablagem estruturada: CEFCablagem estruturada: CEF
Cablagem estruturada: CEF
 
Aula de LOGARITMOS
Aula de LOGARITMOSAula de LOGARITMOS
Aula de LOGARITMOS
 
Lista de exercicios de mat financeira juros compostos resolvidos 1
Lista de exercicios de mat financeira juros compostos resolvidos 1Lista de exercicios de mat financeira juros compostos resolvidos 1
Lista de exercicios de mat financeira juros compostos resolvidos 1
 
Moda, Média e Mediana
Moda, Média e MedianaModa, Média e Mediana
Moda, Média e Mediana
 
Tabela ascii
Tabela asciiTabela ascii
Tabela ascii
 
Qq plot
Qq plotQq plot
Qq plot
 
Unidade 04 - Estatística - Medidas de dispersão.ppt
Unidade 04 - Estatística - Medidas de dispersão.pptUnidade 04 - Estatística - Medidas de dispersão.ppt
Unidade 04 - Estatística - Medidas de dispersão.ppt
 
Restrição e Prolongamento de uma função
Restrição e Prolongamento de uma funçãoRestrição e Prolongamento de uma função
Restrição e Prolongamento de uma função
 
Aula 02 Cálculo de limites - Conceitos Básicos
Aula 02   Cálculo de limites - Conceitos BásicosAula 02   Cálculo de limites - Conceitos Básicos
Aula 02 Cálculo de limites - Conceitos Básicos
 
CORRESPONDENTES BANCÁRIOS NO BRASIL
CORRESPONDENTES BANCÁRIOS NO BRASILCORRESPONDENTES BANCÁRIOS NO BRASIL
CORRESPONDENTES BANCÁRIOS NO BRASIL
 
[Pds] Transformada Z
[Pds] Transformada Z[Pds] Transformada Z
[Pds] Transformada Z
 
4- Aula 4 -Unidades e Escalas- 2012.2_turma 1.8421.1M (1).ppt
4- Aula 4 -Unidades e Escalas- 2012.2_turma 1.8421.1M (1).ppt4- Aula 4 -Unidades e Escalas- 2012.2_turma 1.8421.1M (1).ppt
4- Aula 4 -Unidades e Escalas- 2012.2_turma 1.8421.1M (1).ppt
 
Tabela derivadas integral
Tabela derivadas integralTabela derivadas integral
Tabela derivadas integral
 
Conjuntos (Conjuntos Numéricos)
Conjuntos (Conjuntos Numéricos)Conjuntos (Conjuntos Numéricos)
Conjuntos (Conjuntos Numéricos)
 
Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,
 
3 probabilidade
3   probabilidade3   probabilidade
3 probabilidade
 

Semelhante a Códigos de hamming

FORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputadorFORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputador
Dafmet Ufpel
 

Semelhante a Códigos de hamming (12)

Tk codigos erros_manuela
Tk codigos erros_manuelaTk codigos erros_manuela
Tk codigos erros_manuela
 
codigos de detecao e correcao de erros_manuela
codigos de detecao e correcao de erros_manuelacodigos de detecao e correcao de erros_manuela
codigos de detecao e correcao de erros_manuela
 
Códigos de Detecção.pptx
Códigos de Detecção.pptxCódigos de Detecção.pptx
Códigos de Detecção.pptx
 
Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)
 
APDS- Apresentaçao.pptx
APDS- Apresentaçao.pptxAPDS- Apresentaçao.pptx
APDS- Apresentaçao.pptx
 
Sessão 6 codificadores estatísticos
Sessão 6 codificadores estatísticosSessão 6 codificadores estatísticos
Sessão 6 codificadores estatísticos
 
Sistema Hexadecimal de numeração
Sistema Hexadecimal de numeraçãoSistema Hexadecimal de numeração
Sistema Hexadecimal de numeração
 
Aula 11- Algoritmos e Programação.pptx
Aula 11- Algoritmos e Programação.pptxAula 11- Algoritmos e Programação.pptx
Aula 11- Algoritmos e Programação.pptx
 
Sessao 9 Capacidade de canal e Introdução a Codificação de canal
Sessao 9 Capacidade de canal e Introdução a Codificação de canalSessao 9 Capacidade de canal e Introdução a Codificação de canal
Sessao 9 Capacidade de canal e Introdução a Codificação de canal
 
FORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputadorFORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputador
 
Sessao 5 Redundância e introdução à codificação de fonte
Sessao 5 Redundância e introdução à codificação de fonteSessao 5 Redundância e introdução à codificação de fonte
Sessao 5 Redundância e introdução à codificação de fonte
 
03 bases numericas
03   bases numericas03   bases numericas
03 bases numericas
 

Mais de PAULO Moreira

5 estruturas de controle
5 estruturas de controle5 estruturas de controle
5 estruturas de controle
PAULO Moreira
 
3.2 introdução a linguagem java
3.2 introdução a linguagem java3.2 introdução a linguagem java
3.2 introdução a linguagem java
PAULO Moreira
 
3.1 introdução a linguagem java
3.1 introdução a linguagem java3.1 introdução a linguagem java
3.1 introdução a linguagem java
PAULO Moreira
 
2.1 introdução a oo
2.1 introdução a oo2.1 introdução a oo
2.1 introdução a oo
PAULO Moreira
 
Classe integer-float-byte-short-long-double
Classe integer-float-byte-short-long-doubleClasse integer-float-byte-short-long-double
Classe integer-float-byte-short-long-double
PAULO Moreira
 
Trabalho de empreendedorismo
Trabalho de empreendedorismoTrabalho de empreendedorismo
Trabalho de empreendedorismo
PAULO Moreira
 
Seminário de empreendedorismo
Seminário de empreendedorismoSeminário de empreendedorismo
Seminário de empreendedorismo
PAULO Moreira
 
5. as regras de ouro do bilionário carlos slim
5. as regras de ouro do bilionário carlos slim5. as regras de ouro do bilionário carlos slim
5. as regras de ouro do bilionário carlos slim
PAULO Moreira
 
8. marca cria cerveja e refrigerante solúvel para praticantes de esportes ao ...
8. marca cria cerveja e refrigerante solúvel para praticantes de esportes ao ...8. marca cria cerveja e refrigerante solúvel para praticantes de esportes ao ...
8. marca cria cerveja e refrigerante solúvel para praticantes de esportes ao ...
PAULO Moreira
 
Interrupções e interconexões
Interrupções e interconexõesInterrupções e interconexões
Interrupções e interconexões
PAULO Moreira
 

Mais de PAULO Moreira (20)

Metodos
MetodosMetodos
Metodos
 
5 estruturas de controle
5 estruturas de controle5 estruturas de controle
5 estruturas de controle
 
3.2 introdução a linguagem java
3.2 introdução a linguagem java3.2 introdução a linguagem java
3.2 introdução a linguagem java
 
3.1 introdução a linguagem java
3.1 introdução a linguagem java3.1 introdução a linguagem java
3.1 introdução a linguagem java
 
2.1 introdução a oo
2.1 introdução a oo2.1 introdução a oo
2.1 introdução a oo
 
1. apresentação
1. apresentação1. apresentação
1. apresentação
 
String
StringString
String
 
Showinputdialog
ShowinputdialogShowinputdialog
Showinputdialog
 
Math
MathMath
Math
 
Joptionpane
JoptionpaneJoptionpane
Joptionpane
 
Classe integer-float-byte-short-long-double
Classe integer-float-byte-short-long-doubleClasse integer-float-byte-short-long-double
Classe integer-float-byte-short-long-double
 
Negociação
NegociaçãoNegociação
Negociação
 
Trabalho de empreendedorismo
Trabalho de empreendedorismoTrabalho de empreendedorismo
Trabalho de empreendedorismo
 
Seminário de empreendedorismo
Seminário de empreendedorismoSeminário de empreendedorismo
Seminário de empreendedorismo
 
7. ecologia
7. ecologia7. ecologia
7. ecologia
 
6. conjuntura
6. conjuntura6. conjuntura
6. conjuntura
 
5. as regras de ouro do bilionário carlos slim
5. as regras de ouro do bilionário carlos slim5. as regras de ouro do bilionário carlos slim
5. as regras de ouro do bilionário carlos slim
 
8. marca cria cerveja e refrigerante solúvel para praticantes de esportes ao ...
8. marca cria cerveja e refrigerante solúvel para praticantes de esportes ao ...8. marca cria cerveja e refrigerante solúvel para praticantes de esportes ao ...
8. marca cria cerveja e refrigerante solúvel para praticantes de esportes ao ...
 
Empreendedorismo
EmpreendedorismoEmpreendedorismo
Empreendedorismo
 
Interrupções e interconexões
Interrupções e interconexõesInterrupções e interconexões
Interrupções e interconexões
 

Códigos de hamming

  • 1. UFSM-CTISM CÓDIGOS DE HAMMING Comunicação de Dados Aula-17 CÓDIGOS DE HAMMING Professor: Andrei Piccinini Legg Santa Maria, 2012
  • 2. CÓDIGOS DE HAMMING Definição: CÓDIGOS DE Um código de Hamming adiciona um bloco de paridade a HAMMING 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. Ideia De todas as possíveis palavras de código, considerar como CÓ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. Algebra Linear e Aritmética Modulo 2 Aritmética modulo 2: CÓDIGOS DE Adição = XOR Produto = AND HAMMING 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. Código de Hamming Um código de Hamming (c,d ) é formado da seguinte CÓ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. Detecção de erros Como as palavras de código pertencem ao espaço nulo de CÓDIGOS DE HAMMING 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. Correção de erros CÓDIGOS DE HAMMING 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. 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ão CÓDIGOS DE HAMMING 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. Exemplo: Código de Hamming (7,4) Palavras de código: 0000 000 0100 101 1000 011 1100 110 CÓDIGOS DE HAMMING 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. Exemplo: Código de Hamming (7,4) Palavras de código: 0000 000 0100 101 1000 011 1100 110 CÓDIGOS DE HAMMING 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. Desempenho dos códigos de Hamming d 2p − p − 1 CÓ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. Desempenho dos códigos de Hamming Distância minima de uma código de Hamming CÓDIGOS DE pode ser determinado através da matriz H ou com uma HAMMING 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. Desempenho dos códigos de Hamming Distância minima de uma código de Hamming CÓDIGOS DE pode ser determinado através da matriz H ou com uma HAMMING 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. Desempenho dos códigos de Hamming capacidade de detecção o número de erros que podem ser detectados utilizando um CÓDIGOS DE HAMMING 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