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
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
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
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?”