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.

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

Passo 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

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

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

Passo 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 recentes

×