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.
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).
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).
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.
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.
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.
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.