Códigos de detecção e correção de erros em sistemas de comunicações
Por: Yuri Dutra • 22/5/2015 • Pesquisas Acadêmicas • 833 Palavras (4 Páginas) • 241 Visualizações
Códigos de detecção e correção de erros em sistemas de comunicações:
Utilizar técnicas de codificação para detecção e correção de erros é importante na manutenção da integridade da comunicação de dados em canais com ruído. Em um sistema de comunicação, pode-se dizer que é normal ocorrência de erros, pois funciona por troca de mensagens a todo instante de um local com outro. Os erros podem ser causados por interferência eletromagnética, envelhecimento de componentes do sistema, curto-circuito, que acabam afetando as mensagens, fazendo com que, por exemplo, um nível lógico baixo (0) enviado acaba sendo regenerado para nível lógico alto (1), ou seja, o receptor recebe informação diferente daquela que foi transmitida.
A maioria das técnicas de detecção e correção de erros consiste na inserção de um conjunto de bits de extras ou bits de redundância ao quadro de dados, conforme mostrado na figura abaixo.
[pic 1]
Detecção de erros: detectar um erro é uma tarefa mais simples do que detectar e corrigir. Nem sempre é possível solicitar uma retransmissão da mensagem com erro. Todos os métodos utilizam a inserção de bits de redundância. Estes bits são obtidos a partir da mensagem original. Na recepção, o decodificador recalcula os bits extras, comparando com os bits transmitidos. Um método ineficiente, mas muito utilizado para detectar erros, é a paridade. Um método mais eficiente é o uso de um código polinomial ou CRC (Cyclic Redundancy Check).
Paridade: no transmissor, é adicionado um bit de redundância após um determinado número de bits da mensagem (normalmente um byte). A paridade pode ser configurada de dois modos: paridade par e paridade ímpar. O bit de paridade é determinado de modo que o número de bits 1s seja par, caso a paridade seja configurada de modo par, ou o número de bits 1s seja impar, caso a paridade seja configurada de modo ímpar.
[pic 2]
Na recepção, o teste de integridade do quadro de dados utilizando o bit de paridade pode ser feito através do operador XOR.
Paridade par: [pic 3]
Paridade ímpar: [pic 4]
Pedido automático de repetição (ARQ – Automatic Repeat Request).
Utiliza a repetição como método de correção de erros. O receptor informa o emissor de que não ocorreram erros na transmissão, enviando um aviso de recepção (ACK). Se depois de um tempo o emissor não tiver recebido essa ACK, significa que o bloco possui erros.
CRC (Cyclic Redundancy Check): verificação de redundância cíclica é um código detector de erros. O CRC é calculado e verificado após a recepção para confirmar se não ocorreram alterações e perda de integridade do quadro transmitido. O CRC é calculado pelo resto da divisão polinomial entre os dados a enviar, e um polinômio gerador adequadamente escolhido.
As vantagens do CRC são:
- Todos os bits são usados no cálculo do CRC. A mudança em apenas um bit provoca mudança do CRC.
- Mudanças pequenas nos dados levam a CRCs muito diferentes.
- A probabilidade dos valores possíveis para o CRC é uniforme. Por exemplo, o CRC-32 há 232 valores possíveis com probabilidade uniforme.
Detecção e correção de erros: um código ECC (Error Correcting Code) é adicionado ao quatro de dados, permitindo que seja identificado um erro na transmissão da mensagem e seja corrigido no decodificador. As técnicas de detecção e correção de erros são também denominadas de FEC (Forward Error Correction).
Um exemplo de código de detecção e correção de erros é a paridade conjugada. No exemplo abaixo, a última coluna e última linha são codificadas com a paridade horizontal e paridade vertical.
[pic 5]
Distância de Hamming: a distância de Hamming de uma mensagem M1 e uma mensagem M2 pode ser avaliada pela quantidade de bits 1s obtidos de uma operação XOR de M1 e M2. A distância mínima de Hamming determina a capacidade de detecção e correção de erros, podendo ser calculada pelas relações abaixo:
- A distância mínima para a detecção de j erros é [pic 6].
- A distância mínima para a detecção e correção de j erros é [pic 7].
Código de Hamming: utilizando o conceito de distância, Hamming desenvolveu uma codificação com capacidade de detecção de mais de 2 erros na mensagem M, e detecção e correção de 1 erro na mensagem M.
...