Como calcular o código de Hamming

ram 3 image by PeteG from Fotolia.com
Códigos de Hamming são usados para inserir informações de correção de erros em fluxos de dados. Os códigos são concebidos de modo que um erro não só é detectado, mas também corrigido. Adicionar informações de correção de erros aumenta a quantidade de dados, mas aumenta também a confiabilidade das comunicações sobre os meios com altas taxas de erro.
A codificação de Hamming pode ser complicada de implementar, mas pode ser feita muito rapidamente usando truques aritméticos em nível de bits. Isto permite a criação de um sistema de correção de erros útil e de alta velocidade, para ser utilizado em aplicações embarcadas.
Step 1
Crie a palavra de dados. Qualquer bit com uma posição que for uma potência de dois (primeiro, segundo, quarto, etc.) deve ser reservado para informações de paridade. Use o tamanho que for necessário para que a palavra tenha os dados originais e os bits de paridade.
Exemplo:
1 1 0 1 0 0 1 0 transforma-se em _ _ 1 _ 1 0 1 _ 0 0 1 0
Os bits originais permanecem na mesma ordem, mas foram espalhados para inserirmos os bits de paridade.
Step 2
Calcule o primeiro bit de paridade. Começando com o primeiro bit, lê-se um bit e, em seguida, pula-se um bit e repete-se o procedimento até o final. Enquanto isso conta-se o número de uns encontrado. Os bits de paridade não contam neste processo.
Se o número de uns for par, defina o primeiro bit como zero. Caso contrário, defina-o para um.
Exemplo:
Bits 1, 3, 5, 7, 9 e 11 de _ _ 1 _ 1 0 1 _ 0 0 1 0, _11101, contêm quatro uns. Este é par, então, o primeiro bit é definido como zero: 0 _ 1 _ 1 0 1 _ 0 0 1 0
Step 3
Calcule os bits de paridade restantes. Começando com o segundo bit, lê-se dois bits e, em seguida, pula-se dois bits e repete-se o procedimento até o final. O quarto bit lê quatro bits, pula outros quatro, começando pelo bit quatro. O mesmo padrão é seguido por todos os bits de paridade, até todos serem computados.
Exemplo:
Bit 2: 0 _ 1 _ 1 0 1 _ 0 0 1 0 verifica _1, 01, 01, que contêm três uns, então o bit 2 é definido como um. Bit 4: _ 0 1 1 1 0 1 _ 0 0 1 0 verifica _101, 0, que contêm dois uns, então o bit 4 é definido como zero. Bit 8: 0 1 1 0 1 0 1 _ 0 0 1 0 verifica _0010, que contêm só um, então o bit 8 é definido como um.
A palavra é, portanto, codificada como 011010110010.
Step 4
Confirme a palavra. Se uma palavra estiver corrompido, os bits de paridade não vão coincidir com o que é esperado. Para confirmar que a palavra não esteja corrompida, basta calcular os bits de paridade usando as etapas dois e três. Se os bits não forem iguais, grave suas posições.
Step 5
Corrija o bit errado. Se você encontrar bits de paridade incorretos, simplesmente some as posições dos bits. O valor da soma é a posição do bit incorreto. Troque o valor do bit nesta posição.
Por exemplo, se os bits de paridade incorretos forem o um e o quatro, trocar o valor do quinto bit corrigirá o erro.
Mais Artigos
Como acessar as teclas jogo-da-velha e asterisco no teclado do computador→

Como recalibrar a tela no GPS TomTom→

Como encontrar o centro e o raio de uma esfera→

Como calcular a contagem corrigida de glóbulos brancos no sangue→

Como arredondar para a centena de milhar mais próxima→

Como calcular variações em duas porcentagens→

Referências
Dica
- Adicionar um bit de paridade extra que calcula o número de zeros na palavra inteira torna possível a detecção de erros de dois-bits. Os códigos de Hamming normais proporcionam um resultado errado no caso de dois bits estarem errados.
Sobre o Autor
In 2009, Jonathan Ryan began writing design documents describing digital marketing promotions for clients such as Heinz Ketchup and Kellogg's. His work also appears on eHow. In addition to working with all things computer-related, he has experience with home improvement and auto repair. Ryan holds a Master of Science in computer science from Western Michigan University.
Créditos Fotográficos
ram 3 image by PeteG from Fotolia.com