Código de Hamming: Exemplos de correção de erros

Índice:

Anonim

O que é um erro?

Os dados transmitidos podem ser corrompidos durante a comunicação. É provável que seja afetado por ruídos externos ou outras falhas físicas. Em tal situação, os dados de entrada não podem ser iguais aos dados de saída. Essa incompatibilidade é conhecida como "Erro".

Os erros de dados podem resultar na perda de dados importantes ou seguros. A maior parte da transferência de dados em sistemas digitais será na forma de 'transferência de bits'. Mesmo uma pequena mudança pode afetar o desempenho de todo o sistema. Em uma sequência de dados, se 1 for alterado para 0 ou 0 for alterado para 1, é chamado de "Erro de bit".

Neste tutorial de código de Hamming, você aprenderá:

  • O que é um erro?
  • Tipos de erros
  • O que é detecção e correção de erros?
  • O que é um código de Hamming?
  • História do código de Hamming
  • Aplicação do código Hemming:
  • Vantagens do código de Hamming
  • Desvantagens do código de Hamming
  • Processo de codificação de uma mensagem usando o código de Hamming
  • Processo de descriptografia de uma mensagem no código de Hamming

Tipos de erros

Existem basicamente três tipos de erro de bit que ocorrem na transmissão de dados do emissor para o receptor.

  • Erros de bit único
  • Erros de múltiplos bits
  • Erros de ruptura

Erros de bit único

A alteração feita em um bit em toda a sequência de dados é conhecida como "Erro de bit único". No entanto, a ocorrência de erro de bit único não é tão comum. Além disso, esse erro só ocorre em um sistema de comunicação paralela porque os dados são transferidos bit a bit em uma única linha. Portanto, há mais chances de uma única linha ser ruidosa.

Erros de múltiplos bits

Na sequência de dados, se houver uma alteração em dois ou mais bits de uma sequência de dados de um transmissor para o receptor, isso é conhecido como "Erros de bits múltiplos".

Este tipo de erro ocorre principalmente em redes de comunicação de dados do tipo serial e paralela.

Erros de burst

A alteração do conjunto de bits na sequência de dados é conhecida como "Erro de burst". Este tipo de erro de dados é calculado a partir da mudança do primeiro bit até a última mudança do bit.

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

No sistema de comunicação digital, o erro será transferido de um sistema de comunicação para outro. Se esses erros não forem detectados e corrigidos, os dados serão perdidos. Para uma comunicação eficaz, os dados do sistema devem ser transferidos com alta precisão. Isso será feito primeiro identificando os erros e corrigindo-os.

A detecção de erros é um método para detectar os erros que estão presentes nos dados transmitidos de um transmissor para o receptor em um sistema de comunicação de dados.

Aqui, você pode usar códigos de redundância para encontrar esses erros, adicionando aos dados quando eles são transmitidos da fonte. Esses códigos são chamados de "códigos de detecção de erros".

Três tipos de códigos de detecção de erros são:

  • Verificação de paridade
  • Verificação de redundância cíclica (CRC)
  • Verificação de redundância longitudinal (LRC)

Verificação de paridade:

  • Também é conhecido como verificação de paridade.
  • Possui um mecanismo de baixo custo para detecção de erros.
  • Nessa técnica, o bit redundante é conhecido como bit de paridade. Ele é anexado para cada unidade de dados. O número total de 1s na unidade deve se tornar par, o que é conhecido como bit de paridade.

Verificação de redundância longitudinal

Nesta técnica de detecção de erros, um bloco de bits é organizado no formato tabular. O método LRC ajuda a calcular o bit de paridade para cada coluna. O conjunto desta paridade também é enviado junto com os dados originais. O bloco de paridade ajuda a verificar a redundância.

Verificação de redundância Cíclica

A verificação de redundância cíclica é uma sequência de redundantes que deve ser anexada ao final da unidade. É por isso que a unidade de dados resultante deve se tornar divisível por um segundo número binário predeterminado.

No destino, os dados recebidos precisam ser divididos pelo mesmo número. Caso não haja resto, a unidade de dados é considerada correta e aceita. Caso contrário, indica que a unidade de dados está danificada na transmissão e, portanto, deve ser rejeitada.

O que é um código de Hamming?

O código de Hamming é um código de linha que é útil para a detecção de erros de até dois erros de bit imediatos. É capaz de erros de bit único.

No código de Hamming, a fonte codifica a mensagem adicionando bits redundantes na mensagem. Esses bits redundantes são principalmente inseridos e gerados em certas posições na mensagem para realizar o processo de detecção e correção de erros.

História do código de Hamming

  • O código de Hamming é uma técnica desenvolvida por RWHamming para detectar erros.
  • O código de Hamming deve ser aplicado a unidades de dados de qualquer comprimento e usa a relação entre dados e bits de redundância.
  • Ele trabalhou no problema do método de correção de erros e desenvolveu um conjunto cada vez mais poderoso de algoritmos chamado código de Hamming.
  • Em 1950, ele publicou o Código de Hamming, amplamente utilizado atualmente em aplicações como a memória ECC.

Aplicação do código de Hamming

Aqui estão algumas aplicações comuns do uso do código Hemming:

  • Satélites
  • Memória do computador
  • Modems
  • PlasmaCAM
  • Conectores abertos
  • Fio de blindagem
  • Processador Embutido

Vantagens do código de Hamming

  • O método de código de Hamming é eficaz em redes onde os fluxos de dados são fornecidos para erros de bit único.
  • O código de Hamming não apenas fornece a detecção de um erro de bit, mas também ajuda a indentar o bit que contém o erro para que possa ser corrigido.
  • A facilidade de uso dos códigos de hamming os torna mais adequados para uso na memória do computador e correção de erro único.

Desvantagens do código de Hamming

  • Detecção de erros de bit único e código de correção. No entanto, se forem encontrados erros em vários bits, o resultado pode resultar em outro bit que deve ser alterado corretamente. Isso pode causar ainda mais erros nos dados.
  • O algoritmo de código de Hamming pode resolver apenas problemas de bits únicos.

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

O processo usado pelo remetente para codificar a mensagem inclui as três etapas a seguir:

  • Cálculo do número total de bits redundantes.
  • Verificar a posição dos bits redundantes.
  • Por fim, calculando os valores desses bits redundantes.

Quando os bits redundantes acima são incorporados à mensagem, ela é enviada ao usuário.

Etapa 1) Cálculo do número total de bits redundantes.

Suponha que a mensagem contenha:

  • n - número de bits de dados
  • p - número de bits redundantes que são adicionados a ele para que np possa indicar pelo menos (n + p + 1) estados diferentes.

Aqui, (n + p) representa a localização de um erro em cada uma das posições de bit (n + p) e um estado extra indica nenhum erro. Como p bits podem indicar 2 p estados, 2 p deve ser pelo menos igual a (n + p + 1).

Etapa 2) Colocar os bits redundantes em suas posições corretas.

Os p bits redundantes devem ser colocados nas posições dos bits de potências de 2. Por exemplo, 1, 2, 4, 8, 16, etc. Eles são referidos como p 1 (na posição 1), p 2 (na posição 2) , p 3 (na posição 4), etc.

Etapa 3) Cálculo dos valores do bit redundante.

Os bits redundantes devem ser bits de paridade, tornando o número de 1s par ou ímpar.

Os dois tipos de paridade são -

  • O número total de bits na mensagem é definido como paridade par.
  • O número total de bits na mensagem que se torna ímpar é denominado paridade ímpar.

Aqui, todo o bit redundante, p1, deve ser calculado como a paridade. Deve cobrir todas as posições de bit cuja representação binária deve incluir um 1 na 1ª posição excluindo a posição de p1.

P1 é o bit de paridade para todos os bits de dados em posições cuja representação binária inclui 1 na posição menos importante, não incluindo 1 Like (3, 5, 7, 9,

… )

P2 é o bit de paridade para todos os bits de dados em posições cuja representação binária inclui 1 na posição 2 da direita, não incluindo 2 como (3, 6, 7, 10, 11,

…)

P3 é o bit de paridade para cada bit em posições cuja representação binária inclui um 1 na posição 3 da direita e não inclui 4 como (5-7, 12-15,

…)

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

O receptor recebe mensagens que requerem a realização de recálculos para encontrar e corrigir erros.

O processo de recálculo realizado nas seguintes etapas:

  • Contando o número de bits redundantes.
  • Posicionamento correto de todos os bits redundantes.
  • Verificação de paridade

Etapa 1) Contando o número de bits redundantes

Você pode usar a mesma fórmula para codificação, o número de bits redundantes

2 p ≥ n + p + 1

Aqui, o número de bits de dados ep é o número de bits redundantes.

Etapa 2) Posicionar corretamente todos os bits redundantes

Aqui, p é um bit redundante que está localizado em posições de bits de potências de 2, por exemplo, 1, 2, 4, 8, etc.

Etapa 3) Verificação de paridade

Os bits de paridade precisam ser calculados com base nos bits de dados e nos bits redundantes.

p1 = paridade (1, 3, 5, 7, 9, 11

…)

p2 = paridade (2, 3, 6, 7, 10, 11

…)

p3 = paridade (4-7, 12-15, 20-23

…)

Resumo

  • Os dados transmitidos podem ser corrompidos durante a comunicação
  • Três tipos de erros de bit são 1) Erros de bit único 2) Erro de bit múltiplo 3) Erros de bit de ruptura
  • A alteração feita em um bit em toda a sequência de dados é conhecida como "Erro de bit único".
  • Na sequência de dados, se houver uma alteração em dois ou mais bits de uma sequência de dados de um transmissor para o receptor, isso é conhecido como "Erros de bits múltiplos".
  • A alteração do conjunto de bits na sequência de dados é conhecida como "Erro de burst".
  • A detecção de erros é um método para detectar os erros que estão presentes nos dados transmitidos de um transmissor para o receptor em um sistema de comunicação de dados
  • Três tipos de códigos de detecção de erro são 1) Verificação de Paridade 2) Verificação de Redundância Cíclica (CRC) 3) Verificação de Redundância Longitudinal (LRC)
  • O código de Hamming é um código de linha que é útil para a detecção de erros de até dois erros de bit imediatos. É capaz de erros de bit único.
  • O código de Hamming é uma técnica desenvolvida por RWHamming para detectar erros.
  • As aplicações comuns do uso do código Hemming são Satélites de memória de computador, modems, processador incorporado, etc.
  • O maior benefício do método de código Hamming é eficaz em redes onde os fluxos de dados são fornecidos para erros de bit único.
  • A maior desvantagem do método de código Hamming é que ele pode resolver apenas os problemas de bits únicos.
  • Podemos realizar o processo de criptografar e decodificar a mensagem com a ajuda do código de Hamming.