Como calcular o código de Hamming

Os códigos Hamming são usados ​​para inserir informações de correção de erros nos fluxos de dados. Os códigos são projetados para que um erro possa não apenas ser detectado, mas corrigido. A adição de informações de correção de erros aumenta a quantidade de dados; no entanto, aumenta a confiabilidade das comunicações na mídia com altas taxas de erros.

A codificação hamming pode ser difícil de implementar, no entanto, pode ser muito rápida usando truques aritméticos no nível de bit. Isso o torna um sistema útil de correção de erros para aplicativos incorporados e de alta velocidade.

Passo 1

Crie a palavra de dados. Qualquer bit com uma posição com potência de dois (primeiro, segundo, quarto etc.) deve ser reservado para informações de paridade. Use o comprimento de uma palavra que você precise adaptar à fonte de dados e aos bits de paridade.

Por exemplo:

1 1 0 1 0 0 1 0 passa a _ _ 1 _ 1 0 1 _ 0 0 1 0

Os bits permanecem na mesma ordem, mas foram estendidos para se ajustarem aos bits de paridade.

Etapa 2

Calcule o bit de paridade primeiro. Começando com o primeiro bit, leia um pouco, depois pule um pouco e repita a operação, contando o número de unidades encontradas. Os bits de paridade contam como zeros.

Se o número de unidades for par, defina o primeiro bit como zero. Caso contrário, coloque-o como um.

Por exemplo:

Os bits 1, 3, 5, 7, 9 e 11 de __ 1 _ 1 0 1 _ 0 0 1 0, _11101, contêm quatro. Como é par, o primeiro bit é definido como zero: 0 _ 1 _ 1 0 1 _ 0 0 1 0.

Etapa 3

Calcule os bits de paridade restantes. O bit dois lê dois bits do bit dois, depois pula dois e repete. O bit quatro lê quatro bits, depois pula quatro e começa com o bit quatro. Continue com esse padrão até que não haja mais bits de paridade para calcular.

Por exemplo:

Bit 2: 0 _ 1 _ 1 0 1 _ 0 0 1 0 verifique _1, 01, 01, que contém 3 unidades, portanto o bit 2 está definido como 1. Bit 4: 0 1 1 _ 1 0 1 _ 0 0 1 0 verifique _101, 0, que contém 2, portanto o bit 4 está definido como 0. Bit 8: 0 1 1 0 1 0 1 _ 0 0 1 0 verifique _0010, com apenas um, defina o bit 8 como 1

A palavra codificada é, portanto, 011010110010.

Etapa 4

Confirme a palavra. Se uma palavra estiver corrompida, os bits de paridade não corresponderão ao esperado. Para confirmar que uma palavra não está corrompida, basta calcular os bits de paridade com as etapas dois e três. Se algum dos bits não corresponder, registre suas posições.

Etapa 5

Corrija a parte ruim. Se você encontrar bits de paridade incorretos, basta adicionar as posições dos bits. A soma é a posição do bit errado. Mova o valor do bit nessa posição.

Por exemplo, se os bits de paridade um e quatro estiverem incorretos, vire o valor do quinto quinto bit para corrigir o erro.

Referências

 

Você pode estar interessado:

Deixe um comentário