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.
Há inúmeros códigos de linha "simples". Por simples, quero dizer um código de linha que seja implementável em hardware com um circuito simples. Códigos mais sofisticados como "m para n" e códigos de chirp são filhos de avanços tecnológicos mais recentes.
Dentre os códigos simples, o mais eficiente e bonito é o código Miller. Ele pertence ao grupo dos "códigos de atraso", pois eles sinalizam a presença de um bit pelo atraso na transição do sinal, seja de baixo para alto ou vice-versa.
As regras do código Miller são:
0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
Conforme pode ser constatado visualmente, a forma de onda Miller tem poucas transições. Esta qualidade economiza banda. O espectro Miller é melhor até que a seqüência de bits NRZ original; a maior parte da energia está concentrada no meio do espectro (e.g. 600Hz para uma seqüência de 1200bps), e quase sem "DC bias".
O código Miller também é naturalmente diferencial, imune a inversões de polaridade, pois os bits da mensagem são naturalmente codificados em termos de transições, e não em termos de níveis absolutos.
Uma característica muito interessante do código Miller é o relacionamento com o código Manchester. Uma seqüência Miller pode ser derivada da Manchester, basta "dividir por 2", ou seja, descartar 1 a cada 2 transições da onda Manchester.
0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
Então, pelo menos no lado TX, um modulador Miller tem uma implementação óbvia: um modulador Manchester seguido de um flip-flop.
Para decodificar Miller, o lado RX pode prestar atenção aos comprimentos relativos de cada transição (1x, 1.5x e 2x). O denominador comum é a taxa de dados, que a rigor nem precisa ser conhecida de antemão.
Em particular, a transição mais longa (2x) só pode acontecer quando a seqüência de bits é "101", e suas bordas caem exatamente no meio do bit "1". Com base nesse fato, é fácil recuperar o clock.
Um código similar ao Miller é o MFM (Freqüência Modulada Modificada), utilizado em disquetes e discos rígidos. Na sua época, foi uma grande evolução pois permitiu duplicar a densidade de armazenamento em meio magnético, comparativamente ao código FM.