codificar | decodificar | comprimir

> hamming | (7,4) | ecc <

// Código Hamming – código de correção de erros para transmissão de dados confiável

[CORREÇÃO]

Correção de erros

Detecta e corrige automaticamente erros de um único bit nos dados.

[DETECÇÃO]

Detecção de erros duplos

Pode detectar (mas não corrigir) erros de dois bits em cada bloco.

[EFICIENTE]

Baixa sobrecarga

Apenas 3 bits de paridade para cada 4 bits de dados (75% de eficiência).

>> informações técnicas

Como funciona o código Hamming:

O código Hamming(7,4) adiciona 3 bits de paridade a cada 4 bits de dados, criando blocos de 7 bits. Os bits de paridade são colocados em posições que são potências de 2 (1, 2, 4). Quando ocorrem erros, o síndrome (resultado da verificação de paridade) aponta diretamente para a posição do bit com erro.

Estrutura Hamming(7,4):

Dados: 1011 (4 bits) Posições: P1 P2 D1 P3 D2 D3 D4 Hamming: 1 0 1 1 0 1 1 P1 = D1 ⊕ D2 ⊕ D4 = 1 ⊕ 0 ⊕ 1 = 0 P2 = D1 ⊕ D3 ⊕ D4 = 1 ⊕ 1 ⊕ 1 = 1 P3 = D2 ⊕ D3 ⊕ D4 = 0 ⊕ 1 ⊕ 1 = 0

Por que usar o código Hamming:

  • >Correção de erro em memória
  • >Comunicação via satélite
  • >Sistemas de armazenamento de dados
  • >Transmissão em redes
  • >Arranjos RAID

>> perguntas frequentes

O que é o código Hamming?

O código Hamming é um código de correção de erros criado por Richard Hamming em 1950. Ele adiciona bits de paridade aos dados que permitem detectar e corrigir automaticamente erros de um único bit.

O que significa (7,4)?

Hamming(7,4) significa 7 bits no total, com 4 bits de dados e 3 bits de paridade. Ele pode corrigir qualquer erro de um único bit no bloco de 7 bits. Outras variantes incluem (15,11) e (31,26).

Como funciona a correção de erros?

Ao receber os dados, os bits de paridade são recalculados. Se não coincidirem, o síndrome (a diferença) indica diretamente qual bit está incorreto. O erro é corrigido invertendo esse bit.

Hamming vs outros códigos ECC?

O código Hamming é simples e eficiente para erros de um único bit. Códigos mais complexos, como Reed-Solomon, podem corrigir vários erros, mas com maior sobrecarga. Hamming é ideal para canais com pouco ruído.

// Referência rápida

Posbitcovered by
1p1p1
2p2p2
3d1p1 p2
4p3p3
5d2p1 p3
6d3p2 p3
7d4p1 p2 p3

// Exemplo resolvido

Data 1011 -> positions 3,5,6,7 = 1,0,1,1
p1 = d3^d5^d7 = 1^0^1 = 0     p2 = d3^d6^d7 = 1^1^1 = 1     p3 = d5^d6^d7 = 0^1^1 = 0
Codeword (pos 1..7)  0110011
Received 0110111 (bit 5 flipped)
Syndrome s3 s2 s1 = 1 0 1 = 5   ->  flip bit 5  ->  0110011 corrected

>> Mais perguntas

P: O que significa (7,4) no código de Hamming?

R: 4 bits de dados são completados com 3 bits de paridade, formando uma palavra de 7 bits. Os bits de paridade ficam nas posições potência de 2: 1, 2 e 4. A distância mínima é 3: corrige um erro e detecta dois, sem corrigi-los.

P: Como a síndrome indica a posição do erro?

R: Cada bit de paridade verifica as posições cujo número tem o bit correspondente ativado. Os três resultados formam em binário a posição do bit errado (0 = sem erro). No exemplo, 101 aponta a posição 5.

P: O que é o Hamming estendido (SECDED)?

R: Um bit de paridade global transforma o (7,4) em (8,4): corrige 1 erro e detecta 2. A memória ECC usa o mesmo princípio, geralmente como (72,64) com 8 bits de controle para 64 de dados.

Outros idiomas