Este artigo estende o artigo introdutório sobre modulação banda-base onde o código Manchester foi devidamente explanado, e (assim espero) entendido e aceito pelo leitor como um código funcional.
Um problema com o código Manchester "sabor baunilha", na verdade um problema presente em muitos outros códigos de linha, é que uma inversão de polaridade (que inverte todos os chirps) fará o RX detectar uma mensagem totalmente invertida.
0 | 1 | 0 |
0 | 1 | 1 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 1 | 0 |
1 | 0 | 1 |
Isto pode acontecer mais facilmente do que você imagina. Cabos são fabricados com fios invertidos, os usuários plugam coisas do jeito errado, e alguns filtros que eliminam "DC bias" invertem o sinal no processo.
Uma solução simples e genial é codificar a mensagem baseando-se nas mudanças ou diferenças da seqüência de bits. Sem mudança é 0, com mudança é 1. As mudanças de nível são detectadas de forma confiável, independente da polaridade.
Para que o lado RX possa interpretar o sinal em termos diferenciais, o lado TX precisa enviar uma seqüência modificada. A forma mais simples de fazer isso é integrar, ou seja, ir somando os bits da mensagem (e considerar 1+1=0). Integrando de um lado, e diferenciando do outro, acabamos descobrindo a mensagem original.
0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
... qualquer código de linha (e.g. Manchester) é usado aqui...
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
x | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
Note que, na mensagem recebida, não podemos saber o valor do primeiríssimo bit, pois não tínhamos um bit anterior para calcular a diferença. Esta é outra razão pela qual um preâmbulo é importante: erros como este vão recair sobre o preâmbulo descartável, não sobre a mensagem.
Códigos diferenciais podem ser encarados como uma forma muito simples de codificação convolucional já que o significado de cada símbolo transmitido depende de um certo número de símbolos anteriores (neste caso, apenas dois).
O código Manchester diferencial também é conhecido na literatura como código FM (modulação de freqüência), utilizado em disquetes e discos rígidos antigos.