O que é código de Hamming: história, funcionamento e suas aplicações

Experimente Nosso Instrumento Para Eliminar Problemas





Em sistemas digitais, os dados transmitidos para comunicação pode ser corrompido devido a ruído externo e quaisquer outras falhas físicas. Se os dados transmitidos não corresponderem aos dados de entrada fornecidos, isso é chamado de 'erro'. Os erros de dados podem excluir dados vitais em sistemas digitais. A transferência de dados será na forma de bits (0 e 1) em sistemas digitais. Se alguma parte for alterada, o desempenho de todo o sistema pode ser afetado. Se o bit '1' for alterado para o bit '0' ou vice-versa, é chamado de erro de bit. Existem diferentes tipos de erros como erros de bit único, erros múltiplos e erros de burst. Neste artigo, discutimos a correção e detecção de erros e o código de Hamming.

O que é detecção e correção de erros?

Na comunicação digital, os dados serão perdidos se houver um erro na transferência de informações de um sistema / rede para outro sistema / rede. Portanto, é importante encontrar e corrigir os erros. Algum erro detecção e métodos de correção são usados ​​para detectar e corrigir os erros para uma comunicação eficaz. Se esses métodos forem usados, os dados podem ser transferidos com maior precisão.




A detecção de erros é definida como o método usado para detectar os erros transmitidos do transmissor / emissor para o receptor em sistemas digitais. Códigos de redundância são adicionados aos dados durante a transmissão para localizar os erros. Eles são chamados de códigos de detecção de erros.

A correção de erros é a correção dos dados transmitidos do transmissor para o receptor. A correção de erros pode ser feita em dois tipos.



Correção de erro para trás

Nesse tipo de correção de erro, o receptor solicita que o remetente retransmita os dados se o receptor detectar o erro.

Continue Correção de Erro

se os dados recebidos pelo receptor encontram o erro, então ele executa os códigos de correção de erros, para corrigir e recuperar os dados automaticamente.


Se houver 'm' nº de bits de dados e 'r' nº de bits redundantes, então as combinações de informações serão 2r.

2r> = m + r + 1

Tipos de códigos de detecção de erros

Os erros nos dados recebidos podem ser detectados usando 3 tipos de códigos de detecção de erros. Eles são, verificação de paridade, verificação de redundância cíclica (CRC) e verificação de redundância longitudinal.

Verificação de paridade

O bit redundante denominado bit de paridade é adicionado para tornar o número de bits par ou ímpar no caso de paridade par ou paridade ímpar. O receptor conta o número de bits (1's) em um quadro para adicionar o bit de paridade. Isso é chamado de verificação de paridade. Se o número de 1 em um quadro for par, então a paridade par é usada adicionando o bit '1' com valor zero. Da mesma forma, o número de 1 é ímpar, então a paridade ímpar é usada adicionando o bit com valor '1'.

Detecção de erro

detecção de erro

Portanto, é usado para garantir que o quadro / data recebido pelo receptor da fonte não seja corrompido. Neste tipo de detecção de erro, o número de 1 deve estar uniforme no quadro recebido. É muito mais barato entre todos os tipos de detecção de erros.

Verificação de redundância longitudinal (LRC)

uando o conjunto / bloco de bits é organizado, o método LRC pode ser usado para verificar o bit de paridade em cada quadro. Isso ajuda a enviar o conjunto de bits de paridade junto com os dados originais e verifica a redundância.

Verificação de redundância Cíclica

Este tipo é usado para detectar se os dados / quadro recebidos da fonte são válidos ou não. Envolve a divisão binária dos dados que devem ser enviados e usa polinômios (para gerar o divisor). Antes a transmissão , uma operação de divisão é realizada pelo remetente nos dados / bits / quadro para calcular o restante.

Verificação de redundância Cíclica

verificação de redundância Cíclica

Durante a transmissão dos dados reais do remetente, ele adiciona o restante no final dos dados reais. A combinação dos dados reais e o restante é chamada de palavra-código. Os dados são transmitidos na forma de palavras-código. Neste processo, se os dados estiverem corrompidos, os dados serão rejeitados pelo receptor, caso contrário serão aceitos.

Qual é o código de Hamming?

O código de Hamming é definido como um código linear que é usado no processo de detecção de erros até 2 erros intermediários. Também é capaz de detectar erros de bit único. Neste método, os bits redundantes são adicionados aos dados / mensagem pelo remetente para codificar os dados. Para fazer a detecção e correção de erros, esses bits redundantes são adicionados em certas posições para o processo de correção de erros.

Código de Hamming

código de hamming

História dos códigos de Hamming

Em 1950, Richard W. hamming inventou códigos de Hamming para detectar e corrigir os erros nos dados. Após a evolução dos computadores com maior confiabilidade, ele introduziu os códigos de Hamming para códigos de correção de 1 erro e mais tarde estendeu para códigos de detecção de 2 erros. Os códigos de Hamming são criados porque a verificação de paridade não pode detectar e corrigir erros nos dados. Os códigos de Hamming são inseridos em qualquer comprimento de bloco de dados entre os dados reais e os bits de redundância. Ele desenvolveu uma série de algoritmos para trabalhar nos problemas de métodos de correção de erros e esses códigos são amplamente usados ​​na memória ECC.

Processo de codificação de uma mensagem usando o código de Hamming

O processo de codificação de uma mensagem usando um código de hamming pelo remetente inclui 3 etapas.

Passo 1: A primeira etapa é calcular o número de bits redundantes em uma mensagem

  • Por exemplo, se uma mensagem contém ‘n’ no.of bits e ‘p’ no.of bits redundantes são adicionados à mensagem, então ‘np’ indica (n + p + 1) estados diferentes.
  • Onde (n + p) representa a localização de um erro em cada posição de bit
  • 1 (estado extra) representa nenhum erro.
  • Uma vez que 'p' indica 2 ^ p (2p) estados, que são iguais a (n + p + 1) estados.

Passo 2: Coloque os bits redundantes na posição exata / correta

Os bits 'p' são inseridos nas posições de bit que são a potência de 2, como 1, 2, 4, 8, 16, etc. Essas posições de bit são indicadas como p1 (posição 1), p2 (posição 2), p3 (posição 4), etc.

Etapa 3: Calcule os valores dos bits redundantes

  • Aqui, os bits de paridade são usados ​​para calcular os valores dos bits redundantes.
  • Os bits de paridade podem tornar o número 1 em uma mensagem par ou ímpar.
  • Se o número total de 1 em uma mensagem for par, então a paridade par é usada
  • Se o número total de 1 em uma mensagem for ímpar, então a paridade ímpar é usada.

Processo de descriptografia de uma mensagem no código de Hamming

O processo de descriptografar uma mensagem recebida do remetente pelo destinatário usando o código de hamming inclui as seguintes etapas. Esse processo nada mais é do que um recálculo para detectar e corrigir os erros em uma mensagem.

Passo 1: Conte o número de bits redundantes

A fórmula para codificar a mensagem usando bits redundantes é,

2p≥ n + p + 1

Passo 2: corrija as posições de todos os bits redundantes

‘P’ no.of bits redundantes são colocados em posições de bit de potência de 2 como 1,2,4,8,16,32 etc

Etapa 3: verificação de paridade (paridade ímpar e paridade par)

Os bits de paridade são calculados com base no número de 1 em bits de dados e bits redundantes.

Por exemplo

A paridade de p1 seria 1, 3, 5, 7, 9, 11, ...

A paridade de p2 seria 2, 3, 6, 7, 10, 11, ...

A paridade de p3 seria 4-7, 12-15, 20-23, ...

Vantagens do Código Hamming

A principal vantagem de usar um código de Hamming é econômica se um fluxo de dados contiver erros de bit único.

  • Ele pode fornecer detecção de erros e também indica o bit que contém um erro para correção.
  • Os códigos de Hamming são muito fáceis e melhores de usar na memória do computador e na correção e detecção de erros de um único bit.

Desvantagens do Código de Hamming

  • É melhor apenas para correção e detecção de erros de bit único. Se houver erros de vários bits, o todo pode ser corrompido.
  • O algoritmo de código de Hamming pode resolver apenas erros de bit único.

Aplicações de códigos de Hamming

Códigos de Hamming são usados ​​em,

  • Informática
  • Telecomunicações
  • Compressão de dados
  • Resolvendo quebra-cabeças e códigos turbo
  • Satélites
  • Plasma CAM
  • Fios blindados
  • Modems
  • Memória do computador
  • Conectores abertos
  • Sistemas embarcados e processador

FAQs

1). O código de Hamming pode detectar erros de 2 bits?

Os códigos de Hamming podem detectar e corrigir erros de até 2 bits em um fluxo de dados

2). Como você conserta o código de Hamming?

Os códigos de Hamming são colocados em qualquer comprimento de dados entre os dados reais e os bits redundantes. Esses códigos são locais com uma distância mínima de 3 bits

3). Qual é o código de paridade?

O código de paridade ou bit de paridade está adicionando um bit ao quadro recebido (os dados contêm 1 e 0) para tornar o número total de bits (1) par ou ímpar.

4). Qual é a distância de Hamming entre os dados?

A distância intermediária entre os dois fluxos de dados diferentes de igual comprimento não é de 1s.

A distância de Hamming entre duas strings de dados de igual comprimento pode ser calculada usando a operação XOR.

Por exemplo, a = 11011001

b = 10011101

A distância de Hamming pode ser calculada como,

11011001 ⊕ 10011101 = 01000100 (no.de 1 bits são 2)

A distância de hamming indica o número de 1 no fluxo de dados resultante

Portanto, d (11011001, 10011101) = 2

Da mesma forma, 010 ⊕ 011 = 001, d (010, 011) = 1.

5). O código de Hamming é cíclico?

Sim, os códigos de Hamming são equivalentes aos códigos cíclicos que podem ser usados ​​como códigos de detecção de erros.

Portanto, trata-se de correção e detecção de erros, tipos de detecção de erros, códigos de hamming , o processo de criptografar e descriptografar a mensagem usando códigos de Hamming, aplicativos de códigos de Hamming, vantagens e desvantagens de códigos de Hamming. Aqui está uma pergunta para você, ‘Quais são as aplicações de detecção e correção de erros?”