Texto e documentos
Números e cálculo
Dados e formatos
Segurança
Desenvolvimento e DevOps
Inteligência Artificial
Finanças
Saúde & Bem-estar
Produtividade
Jogos & Entretenimento
Multimédia e design
Empresa
Guia de utilização
O que é o código de Hamming

O código de Hamming (7,4) acrescenta 3 bits de paridade a 4 bits de dados, nas posições 1, 2 e 4 (potências de 2). A síndrome identifica a posição do bit errado e permite corrigir um erro de 1 bit.

Como se usa (os três separadores)

1. Codificar — escreve os teus bits de dados e obtém a palavra código com a paridade já intercalada; clica num bit para simular um erro.
2. Detetar e corrigir — cola uma palavra código (com ou sem falha) e verás a síndrome, o bit errado e a palavra corrigida.
3. Simulador — envia a mesma palavra milhares de vezes por um canal com ruído e mede quantas são corrigidas, detetadas ou falham.

O interrutor SECDED e o menu Exemplos estão nos três separadores. Tudo se recalcula só ao escrever (sem botão).

O que introduzir e os seus limites

Em Codificar tens dois modos:
Bits — apenas os carateres 0 e 1 (os dados, sem bits de paridade: são adicionados automaticamente).
Texto — texto ASCII/Latin-1; cada caráter converte-se em 8 bits (carateres fora desse intervalo não são admitidos).

Em Detetar e corrigir cola-se a palavra código completa (dados + paridade), também em 0 e 1. Qualquer outro caráter marca o campo a vermelho. Não há limite de comprimento: quantos mais bits de dados, mais eficiente é o código (menos paridade por bit).

Codificar

Introduz uma sequência de bits de dados (sem bits de paridade) e é calculada a palavra-código de Hamming com os bits de paridade intercalados.

Como deteta e corrige (a síndrome)

Ao receber a palavra, cada paridade é reverificada com um XOR. A síndrome é a soma das posições de paridade que falham e, pela forma como foram colocadas, equivale exatamente à posição do bit errado: síndrome 0 = sem erro; síndrome 5 (= 101 em binário) = o bit 5 está errado, e inverte-se para o corrigir.

Atenção: o Hamming assume sempre um único erro. Se houver 2 bits errados, a síndrome aponta para um terceiro bit inocente e "corrige-o" mal → falha silenciosa (dados errados sem aviso). Para isso existe o SECDED.

SECDED (paridade estendida)

Ao ativar SECDED adiciona-se um bit de paridade global sobre toda a palavra: a distância sobe para 4, de modo que se pode corrigir 1 erro e detetar 2 (sem os corrigir). É o que a memória ECC usa.

Simular um erro

Após codificar, clica em qualquer bit da palavra para o "corromper" e observa como a síndrome localiza o erro e é corrigido ao instante.

HammingDeteção de erros
Código HammingDeteção e correção de erros em 1 bit.
Introduz os bits de dados (sem bits de paridade)