Detecção e correção de erros
O que é erro?
Erro é uma condição em que as informações de saída não correspondem às informações de entrada. Durante a transmissão, os sinais digitais sofrem ruído que pode introduzir erros nos bits binários que viajam de um sistema para outro. Isso significa que um bit 0 pode mudar para 1 ou um bit 1 pode mudar para 0.

Códigos de detecção de erros
Sempre que uma mensagem é transmitida, ela pode ser embaralhada por ruído ou os dados podem ser corrompidos. Para evitar isso, usamos códigos de detecção de erros que são dados adicionais adicionados a uma determinada mensagem digital para nos ajudar a detectar se ocorreu um erro durante a transmissão da mensagem. Um exemplo simples de código de detecção de erros éparity check.
Códigos de correção de erros
Junto com o código de detecção de erros, também podemos passar alguns dados para descobrir a mensagem original da mensagem corrompida que recebemos. Esse tipo de código é chamado de código de correção de erros. Os códigos de correção de erros também implementam a mesma estratégia dos códigos de detecção de erros, mas, além disso, esses códigos também detectam a localização exata do bit corrompido.
Em códigos de correção de erros, a verificação de paridade tem uma maneira simples de detectar erros, juntamente com um mecanismo sofisticado para determinar a localização do bit corrompido. Uma vez que o bit corrompido é localizado, seu valor é revertido (de 0 para 1 ou 1 para 0) para obter a mensagem original.
Como detectar e corrigir erros?
Para detectar e corrigir os erros, bits adicionais são adicionados aos bits de dados no momento da transmissão.
Os bits adicionais são chamados parity bits. Eles permitem a detecção ou correção dos erros.
Os bits de dados junto com os bits de paridade formam um code word.
Verificação de paridade de detecção de erros
É a técnica mais simples para detectar e corrigir erros. O MSB de uma palavra de 8 bits é usado como bit de paridade e os 7 bits restantes são usados como bits de dados ou mensagem. A paridade da palavra transmitida de 8 bits pode ser paridade par ou paridade ímpar.

Even parity - Paridade par significa que o número de 1 na palavra dada incluindo o bit de paridade deve ser par (2,4,6, ....).
Odd parity - Paridade ímpar significa que o número de 1 na palavra dada, incluindo o bit de paridade, deve ser ímpar (1,3,5, ....).
Uso de bit de paridade
O bit de paridade pode ser definido como 0 e 1 dependendo do tipo de paridade necessária.
Para paridade par, este bit é definido como 1 ou 0 de forma que o não. de "1 bits" em toda a palavra é par. Mostrado na fig. (uma).
Para paridade ímpar, este bit é definido como 1 ou 0, de modo que o não. de "1 bits" em toda a palavra é estranho. Mostrado na fig. (b).

Como ocorre a detecção de erros?
A verificação de paridade no receptor pode detectar a presença de um erro se a paridade do sinal do receptor for diferente da paridade esperada. Isso significa que, se soubermos que a paridade do sinal transmitido será sempre "par" e se o sinal recebido tiver uma paridade ímpar, o receptor pode concluir que o sinal recebido não está correto. Se um erro for detectado, o receptor irá ignorar o byte recebido e solicitar a retransmissão do mesmo byte para o transmissor.
