Deteção e Correção de Erros em transmissões digitais

Quando estamos em ambientes ruidosos temos dificuldade em ouvir alguém que fale connosco, nas transmissões de dados, fenómenos como o ruído e as interferências também ocorrem, podendo deturpar a mensagem original. Devido a este problema são aplicados códigos de deteção e correção de erros às transmissões.

Vamos então dizer três códigos de detecção de erros:

1º Verificação de Paridade

Este é um dos métodos mais utilizados para a detecção de erros. O bit de paridade indica o número de bits 1 presentes num carácter (Byte). Assim, diz-se que a paridade é par se tiver um número par de 1's e ímpar caso tenha número ímpar de 1's. Assim, este assumo o bit 0 quando temos paridade par e 1 quando temos paridade ímpar. Vejamos o exemplo:

1100110 - a mensagem está correta. O último bit é zero indicando que o número de 1's que o precede é para (4 1's)

10101011 - a mensagem está errada. O byte teria assim de ser retransmitido visto o bit de paridade dizer que o número de 1's é impar e no entanto é par (4 1's).

 

2º CheckSum

São técnicas utilizadas para detectar erros principalmente na internet e denominam-se somas de verificação. Se a soma de checksums (normal e complemento de para 1) resultarem apenas 1's, podemos inferir que "não" houve erros na transmissão, caso contrário, existiu erro na transmissão.

Exercicio:

1º Passo - Fazer a respetiva soma de binários

 

 00111101

+00001101

  01001010

 

2º Passo - como a soma tem de ser em complemento para um terá de inverter a sequência resultante da soma normal (zeros passam a 1's e vice-versa)

 

Checksum invertido: 10110101

 

Os dados enviados serão então: 00111101 00001101 10110101, ou seja, os dois bytes iniciais mais a sequência de checksum invertido.

 

3º Passo - para verificar se ocorreram erros durante a transmissão, no receptor, teremos de voltar a somar os 2 bytes de dados enviados e somar ao checksum invertido.

 

10110101 (checksum invertido)

01001010 (checksum do receptor)

+

11111111

 

Como a soma resultou em 1's concluímos que não houve erro na transmissão

 

3º CRC ( Cycle Redudancy Check )

Está é a técnica mais eficiente que as anteriores. Muitas vezes, é também denominada por método de detecção polimonimal. O método consiste em adicionar um conjunto de bits (FCS- Frame Check Sequence) à mensagem original a transmitir. Os bits FCS são calculados através da seguinte expressão:

 

FCS(x)=resto  M(x)*xm / G(x)

 

 

FCS(x) é igual ao resto da divisão inteira entre duas funções polimoniais M(x) e G(x) onde M(x) é a nossa mensagem original sem código.de erros e G(x) o polinómio gerado pré-definido(chave da nossa codificação). Para facilitar a compreensão deste tema resolve se de seguida um exercício.