Programação

sexta-feira, 10 de novembro de 2023

Técnicas de Codificação e Correção de Erros


Digitalização é o processo de transformação de um sinal analógico num sinal digital.

Este processo consiste em três fases sequenciais:

  1. Amostragem;

  2. Quantização;

  3. Codificação.


Codificação 
A codificação é o processo pelo qual os valores quantizados são convertidos (codificados) em bits (zeros e uns).
 É o processo responsável por converter sinais digitais, segundo formatos necessários à transmissão e, principalmente, incluir no sinal digital o sincronismo de relógio, indispensável para a transmissão. Desta forma, garante que não existe perda de sincronismo entre o emissor e o receptor


Recordando
LIGAÇÕES SÍNCRONAS E ASSÍNCRONAS
Um sistema de comunicação interliga um emissor e um receptor através de um canal.

Entre eles é estabelecida uma ligação que poderá ser síncrona ou assíncrona.

A forma como o receptor consegue ler os dados transmitidos pelo emissor depende destes tipos de ligações.    

A palavra síncrona indica a presença de um relógioEste será o responsável por sincronizar emissor e receptor durante a transmissão de informação.

 

O sincronismo permite ao receptor saber quando deve começar a ler os dados e quando deve parar.

 

Conta também com uma verificação de erros do tipo CRC (será explicado no ponto 11.1.3) que, no caso de erro na transmissão do bloco de dados, garante uma retransmissão da informação.

     
Transmissão síncrona

No início de leitura dos dados no receptor ocorre após a leitura do campo STX, que indica o início de transmissão. Neste momento, o receptor sabe que tem de ler os dados enviados pelo emissor até que apareça o campo ETX, que indica o final da transmissão.

Este tipo de transmissão permite que uma grande quantidade de dados (blocos) sejam transmitidos de uma só vez e ao longo de grandes distâncias, tomando-se muito eficiente. Geralmente é usada em Ethernet


TRANSMISSAO ASSÍNCRONA

Este tipo de transmissão diz-se assíncrona visto não usar um relógio de sincronismo para a transmissão de dados.

 

Sem a presença de um relógio para indicar ao receptor quando deve ler a informação proveniente do emissor é necessário utilizar marcadores (flags) que desempenhem essa função.


Possui como principais vantagens apresentar baixo custo e fácil configuração


 

O receptor ao ler o Start Bit (flag inicial) sabe que a partir deste terá um byte (8 bit) de dados para ler.

Nesse byte, o último bit poderá contar com um bit de paridade que irá fazer a verificação de erros.

Stop Bit (flag final) indica que o byte de dados terminou de ser transmitido.

 

Devido a este cabeçalho adicionalnecessário para o controlo, torna a transmissão assíncrona menos eficiente que a transmissão síncrona, não sendo por isso usado para a transmissão de grandes quantidade de informação e entre grandes distâncias.



Técnicas de Modulação (Codificação) Digital

Técnicas de Codificação

É necessário transmitir a informação sem errospor isso a codificação tem como principal objetivo: preservar o sincronismo do relógio entre o emissor e o receptor


OS CÓDIGOS DE LINHA
Na transmissão de informação, independentemente do canal utilizado, esta está sujeita a atrasos, ruído e erros introduzidos pelo canal utilizado ou equipamento de rede por onde passa. 

Os códigos de linha foram criados para ajudar a manter a integridade dos dados ao longo do seu percurso.


Em geral, os códigos de linha devem ter em conta certos aspectos:

  • a largura de banda que utilizam,

  • a imunidade a erros e ruídos,

  • o tempo de bit (Duty Cycle),

  • a possibilidade de recuperação do relógio de sincronismo (CLK)

  • a existência de componente contínua nula (transformadores ao longo do canal que bloqueiam o sinal contínuo não nulo).



Duty Cycle (ciclo e trabalho) -  é uma medida que indica a proporção do tempo em que um sinal está ativo em relação ao tempo total do ciclo.


Existem 3 tipos de códigos de linha

  1. NRZ - Non Return Zero

  2.  RZ -         Return Zero

  3. Manchester




NRZNON RETURN ZERO

 

O código de linha do tipo Non Return Zero indica que o sinal não necessita obrigatoriamente de ir a zero entre transições de bit.

 

Tem Duty Cycle de 100% (o impulso prolonga-se durante todo o bit).

 

Existem três tipos de codificação NRZ.

 

  • NRZ Unipolar

  • NRZ Polar

  • NRZ Bipolar (AMI)

 

NRZ unipolar

 

  • Este tipo de codificação é a mais simples (a sua única vantagem).

  • Apresenta alguns problemas, como por exemplo, a componente DC não nula e as longas sequências de 0's ou 1's determinam que facilmente perda de sincronismo.

  • É utilizado para gravação digital em suportes magnéticos

  • Os limites da onda estão sempre entre 0 e 1 

  • tomam valor 1 quando o bit a codificar é e valor 0  quando o bit a codificar é e o   





NRZ polar

 

  • Este tipo de codificação apresenta as mesmas vantagens e desvantagens do anterior.

  • Os limites da onda neste tipo de codificação estão entre -1 e 1.

  • Também é usado para gravação digital em suportes magnéticos

  • A onda codificada toma o valor 1 quando o bit a codificar é 1 e valor -1 quando o bit a codificar é 0




NRZ bipolar (AMI) significa "Alternate Mark Inversion"

  
  • Este tipo de codificação resolve o problema relativo à componente DC mas sofre igualmente de perda de sincronismo com facilidade.

  • Os limites da onda neste tipo de codificação estão entre -1, 0 e 1.

  • É utilizado nas interfaces RDIS

  • A onda codificada toma o valor 0 quando o bit a codificar é 0 e valor 1 e -1 alternadamente quando o bit a codificar é 1.


os bits "0" são representados por zero volts, enquanto os bits "1" são alternados entre polaridades positivas e negativas.


As interfaces RDIS são os dispositivos ou pontos de conexão que permitem a interação de equipamentos com a rede RDIS (Rede Digital de Serviços Integrados)



RZ RETURN ZERO

 

O código de linha do tipo Return Zero indica que, em cada transição, metade do bit o sinal vai a zero.

 

Diz-se por isso que tem um Duty Cycle de 50% e utiliza o dobro da largura de banda em relação aos códigos NRZ.

 

Existem três tipos de codificações RZ:

  • RZ Unipolar

  • RZ Polar

  • RZ Bipolar (AMI)


RZ unipolar

 

  • Este tipo de codificação apresenta as mesmas vantagens e desvantagens do NRZ unipolar com a agravante de que utiliza, como já foi referido o dobro da largura de banda.

  • Os limites da onda estão sempre entre 0 e 1

  • É usado nas mesmas aplicações que o NRZ unipolar ( gravação digital em suportes magnéticos)

  • Toma o valor 1 quando o bit a codificar é 1 (50%e valor 0  quando o bit a codificar é 0.

  • Só permanecem nestes valores metade do tempo (Duty Cycle 50%) e na outra metade tomam sempre o valor 0.


RZ polar

 
  • Este tipo de codificação apresenta as mesmas vantagens e desvantagens do NRZ polar (e o dobro da largura de banda).

  • Os limites da onda neste tipo de codificação estão entre -1 e 1.

  • É usado nas mesmas aplicações que NRZ polar (gravação digital em suportes magnéticos)

  • Toma o valor 1 quando o bit a codificar é 1 (50%) e valor -1 quando o bit a codificar é 0 (50%).

  • Só permanecem nestes valores metade do tempo (Duty Cycle 50%) e na outra metade tomam sempre o valor 0.





RZ bipolar (AMI)

 
  • Este tipo de codificação apresenta as mesmas vantagens e desvantagens do NRZ Bipolar (e o dobro da largura de banda).

  • Os limites da onda neste tipo de codificação estão entre -1, 0 e 1.

  • É usado nas mesmas aplicações que NRZ bipolar (utilizado nas interfaces RDIS.)

  • A onda codificada toma o valor 0 quando o bit a codificar é 0 e valor 1 e -1 alternadamente quando o bit a codificar é 1.

  • Só permanecem nestes valores metade do tempo (Duty Cycle 50%) e na outra metade tomam sempre o valor 0.




MANCHESTER

 

Este código de linha, à semelhança do RZ, também apresenta um Duty Cycle de 50%. Logo necessita do dobro da largura de banda em relação ao código NRZ.

 

No entanto exibe vantagens em relação aos anteriores, tais como:

  •  nunca apresentar componente nula,

  •  nunca perde o sincronismo de relógio entre o emissor e o receptor

  •  e tem a capacidade de detecção de erros.

 

Existem 2 tipos de codificações Manchester

  1. Manchester normal

  2. Manchester Diferencial



Manchester Normal

 

  • Os limites da onda neste tipo de codificação estão entre -1 e 1.

  • Neste código de linha, as decisões são sempre tomadas a meio de cada bit.

  • É usado em redes do tipo Ethernet

  • As transições entre 0->1 e 1->0 ocupam a largura de um bit desde o meio do bit anterior até ao meio do bit seguinte.





Manchester Diferencial

 

  • Os limites da onda neste tipo de codificação estão entre -1 e 1.

  • À semelhança do anterior, as decisões são sempre tomadas a meio de cada bit.

  • As diferenças aqui residem apenas nas transições entre bits serem codificadas de forma diferente do anterior.

  • As transições entre 0->1 e 1->1 ocupam a largura de um bit desde o meio do bit anterior até ao meio do bit seguinte. As restantes transições 0-> 0 e 1->0 ocupam apenas meio bit

  • É usado em redes do tipo Token Ring




Resumindo 
Tipos de códigos de linha cada um tem outros tipos  
  1. NRZ - Non Return Zero  ( NRZ Unipolar;  NRZ Polar e NRZ Bipolar)

  2. RZ -         Return Zero  ( RZ Unipolar;  RZ Polar e  RZ Bipolar)

  3. Manchester (Manchester normal, Manchester Diferencial)




Técnicas de Deteção e Correção de Erros  

Técnicas de deteção e a correção de erros em transmissões digitais são essenciais para garantir a integridade dos dados transmitidos em ambientes suscetíveis a ruídos, interferências ou outras formas de degradação do sinal.

Técnicas de deteção de erros
  • Verificação de paridade                  
  • Checksums
  • CRC – Cyclic Redundancy Check 


VERIFICAÇÃO DE PARIDADE

--A verificação de paridade é o método mais simples e mais utilizado de deteção de erros em transmissões de dados.
 --consiste em adicionar um bit extra (chamado bit de paridade) no final de uma sequência de bits, podendo ser 0 ou 1, tornando o nº total de bits 1's em nº par ou nº ímpar
- Este método detecta erros mas não é capaz de os corrigir.
 

Existem dois métodos:

PARIDADE PAR
       o nº total de bits "1", incluindo o bit de paridade, deve ser um número par

PARIDADE ÍMPAR
        se o nº total de bits "1", incluindo o bit de paridade, deve ser um número ímpar




--------------------------------------------------------------------------------
Considerando o caracter C do código ASCII padrão ( 7 bits) representado pelo conjunto de bits seja 1000011. (temos 3 bits 1's )

Sistemas mais modernos usam código ASCII ( 8 bits)
conjunto de bits seja 01000011. (temos 3 bits 1's )

Usando a Paridade PAR
    Vamos adicionar o bit de paridade -- temos que acrescentar o bit 1.

    A sequência transmitida será 11000011 ficando o nº total de 1's é um nº par

   EMISSOR                                                                                                       RECEPTOR  
11000011                          -->   não há erro                         11000011

    11000011 --> há erro na transmissão                                  11010011

Ao receber os dados, o receptor recalcula a paridade e verifica se ela é consistente com o bit de paridade recebido. Se houver uma inconsistência, isso indica que ocorreu um erro na transmissão.
-----------------------------------------------------------------------------------------------------------------


Usando a Paridade ÍMPAR
Vamos adicionar o bit de paridade -- temos que acrescentar o bit 0.

A sequência transmitida será 11000010 ficando o nº total de 1's é um nº ímpar
---------------------------------------------------------------------------------------------------------------------------------

Para se transmitir a sequência de caracteres “HELLO” usando-se a tabela ASCII e bits de paridade par, a sequência de bits a ser transmitida é

H -  1 0 0 1 0 0 0 0
E -  1 0 0 0 1 0 1 1
L -  1 0 0 1 1 0 0 1
L -  1 0 0 1 1 0 0 1
O - 1 0 0 1 1 1 1 1

-----------------------------------------------------------------------------------------------
O bit de paridade pode ser adicionado no final ou no início da sequência de bits, dependendo da convenção ou da especificação utilizada em um sistema particular. 
Ambas as abordagens são válidas, mas é importante que o emissor e o receptor estejam configurados da mesma forma para garantir uma verificação adequada

  1. Checksum (Soma de Verificação)

    • Adiciona uma soma de verificação de todos os dados ao final dos dados.
    • O receptor recalcula a soma e compara com a soma recebida. Se houver diferença, ocorreu um erro.




CRCCyclic Redundancy Check 
 
O CRC é uma técnica mais avançada que envolve a divisão dos dados por um polinômio gerador. O resultado da divisão, chamado de resto, é anexado aos dados e transmitido.
O receptor também realiza a divisão e verifica se o resto corresponde ao valor recebido. O CRC é amplamente utilizado em comunicações digitais e armazenamento.
O CRC é eficaz na deteção de erros comuns, mas não é projetado para corrigi-los.




Nem todos os erros na transmissão de dados são detetados por estas técnicas



Técnicas de Correção de Erros


Códigos de Hamming:

  • Os códigos de Hamming são uma classe de códigos de correção de erros que adicionam bits de paridade aos dados.
  • Esses bits extra são calculados de maneira a permitir a detecção e correção de erros.
  • Existem várias versões dos códigos de Hamming, cada uma oferecendo diferentes capacidades de correção e detecção de erros...

  • Códigos de Reed-Solomon:

    • Os códigos de Reed-Solomon são eficazes na correção de erros em blocos de dados. Eles são frequentemente usados em aplicações como CDs, DVDs e códigos de barras. Esses códigos podem corrigir vários erros e são especialmente robustos contra erros burst, onde vários bits consecutivos são afetados.


Automatic Repeat reQuest (ARQ)
é uma abordagem de correção de erros usada em comunicações digitais.
Em sistemas ARQ, quando um receptor detecta erros em uma mensagem recebida, ele solicita automaticamente a retransmissão dessa mensagem ao transmissor. Isso ocorre de forma automática, sem a necessidade de intervenção humana.


Sem comentários:

Enviar um comentário