Skip to main content

O que é um código de Hamming?

Um código Hamming é um método para detectar e corrigir erros em uma transmissão binária. Isso é feito através da inclusão de dígitos binários adicionais na sequência usada para verificação, bem como de um algoritmo que fornece a lógica de detecção. Esse código é capaz de encontrar dois erros em qualquer sequência de bits e reparar um bit que pode estar incorreto. O código Hamming mais comumente mencionado é conhecido como Hamming (7,4), onde os quatro indicam o número original de bits iniciais e os sete representam o número total de bits na sequência após a inclusão dos bits de verificação adicionais.

A técnica recebeu o nome de seu criador, Richard Hamming, que publicou o método em 1950. A maneira como o código Hamming funciona é pegar uma sequência de bits e inserir bits de verificação adicionais, chamados de bits de paridade, na sequência. Os bits de verificação são sempre injetados em uma posição com potência de dois, para que qualquer número de bits possa ser verificado incluindo bits de paridade adicionais. Isso pode continuar até que o último bit de paridade adicionado à sequência esteja em uma posição que seja uma potência de dois menor ou igual à posição final na sequência.

Com todos os bits de paridade no lugar, as posições restantes são os bits de dados reais. Dado o exemplo de quatro bits, as posições 1, 2 e 4 seriam os bits de paridade, enquanto as posições 3, 5, 6 e 7 são os dados. Depois que essa sequência é estabelecida, a lógica do código Hamming começa a funcionar.

Em um código Hamming, cada um dos bits de paridade que foram adicionados à sequência são usados ​​para verificar algumas das posições de bits nas quais estão próximas, inclusive elas próprias. O bit de paridade na posição um verifica todas as outras posições de bits, que são essencialmente todas as posições com números ímpares na sequência. O segundo bit de paridade, na posição dois, verifica as posições dois e três, depois pula duas posições, verifica mais duas posições, pula mais duas e assim por diante. Se houver um bit de paridade na posição quatro, ele age de maneira semelhante, na medida em que verifica as posições de quatro a sete, depois pula quatro posições, verifica mais quatro e continua. Cada bit de paridade na sequência continua dessa maneira por toda a sequência.

O processo pelo qual um código Hamming detecta e corrige um erro é somando os bits na sequência de verificação para cada verificação de paridade, cada um dos quais deve ter um número par. Dado o exemplo de sete bits, para a primeira verificação de paridade, os bits um, três, cinco e sete são somados. Se o total for um número par, a paridade fará check-out, mas se o total for ímpar, ocorrerá um erro. Como as verificações de paridade se sobrepõem, dois desses erros aparecerão. Quando as posições de bit de duas paridades que não conseguem chegar aos totais pares são somadas, isso revelará o bit que precisa ser corrigido.

No exemplo de código Hamming de sete bits, considere que o bit na posição número cinco está incorreto. A soma dos bits nas posições um, três, cinco e sete sairá como um número ímpar, assim como a soma dos bits nas posições quatro a sete. Isso indica que a paridade verifica os bits de verificação nas posições um e quatro falhou. Quando um e quatro são somados, o total é cinco, que é a posição do bit incorreto na transmissão que precisa ser corrigido.