Site menu Modulação banda-base digital: códigos m-para-n

Modulação banda-base digital: códigos m-para-n

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.

Modular uma mensagem de modo que seja recuperável pelo lado receptor (RX) e ainda seja frugal na banda, é difícil. Mais difícil é implementar estratégias mais avançadas usando hardware simples. Por "simples" entenda-se um punhado de portas lógicas e componentes eletrônicos discretos.

Os avanços mais recentes na tecnologia de modulação preferem empregar transmissores e receptores extremamente simples, alimentados por codificações simples como NRZ. O condicionamento da mensagem é delegado para níveis mais altos, o que abre espaço inclusive para implementação em software, pelo menos na fase de protótipo.

Das técnicas ditas "avançadas", a mais singela é o código m-para-n. Para cada "m" bits da mensagem, enviamos "n" chirps.

A seqüência de chirps é escolhida de acordo com um trecho de m bits. A biblioteca ou "livro" de seqüências de chirps é cuidadosamente escolhido a fim de maximizar os benefícios: baixo consumo de banda, espectro bem-comportado, boa recuperação de clock, e tolerância a ruídos e distorções.

A codificação Manchester é realmente um código 1-para-2, visto que ele transforma bits 0 ou 1 em chirps 01 ou 10, respectivamente. Vamos ver um exemplo de código m-para-n um pouco mais elaborado, o 3b/4b:

101000
Mensagem original
10101011
Mensagem codificada com o `livro` 3b4b

O livro de códigos, se for de boa qualidade, "alveja" (randomiza) a seqüência de bits em certa medida, independente do conteúdo original. Ele também garante uma recuperação de clock no lado RX porque evita longas seqüências do mesmo valor de chirp. No código 3b4b, nenhum chirp tem mais que 3 valores iguais consecutivos.

A recuperação de clock pode ser obtida cotejando a seqüência de chirp recebida com as seqüências de chirp válidas do livro, até achar uma seqüência válida. O pulo do gato é que, entre 16 possibilidades, apenas 8 chirps válidos existem no livro. Esta redundância é que permite a sincronização.

Os chirps são distinguíveis inclusive entre si. Por exemplo, a seqüência 01100110 é muito provavelmente um par de chirps 0110, já que 1100 (parte do meio) não está no livro. 1001 está no livro, então um sincronismo a partir do terceiro chirp também é possível, porém é preciso verificar o próximo chirp, ainda incompleto, para confirmar esta hipótese.

Outro exemplo: dada a subseqüência ...11110100... e sem conhecer os chips antes e depois dessa subseqüência, encontre a fase dos chirps:

Os códigos m-para-n adicionam alguma capacidade de correção de erros ao canal de comunicação. Por exemplo, se o RX recebe um chirp 1111, este chirp é inválido pois não está no livro. Mas se o RX confia na fase do seu clock, ele pode decidir pelo chirp 1101, já que 1101 é o chirp válido mais parecido com 1111.