O que é codificação de canal?
A codificação de canal é uma técnica usada nas comunicações digitais para garantir que uma transmissão seja recebida com erros mínimos ou sem erros. Os vários métodos de codificação que podem ser empregados são alcançados entrelaçando dígitos binários adicionais na transmissão. Quando decodificada no lado receptor, a transmissão pode ser verificada quanto a erros que possam ter ocorrido e, em muitos casos, reparados. Outras vezes, o destinatário simplesmente pede a transmissão novamente.
A idéia por trás da codificação de canal foi desenvolvida devido à inevitável existência de erros em qualquer tipo de canal de comunicação. Ondas de rádio, sinais elétricos e até ondas de luz através de canais de fibra óptica terão uma certa quantidade de ruído no meio, além de degradação do sinal que ocorre a certa distância. Sendo um problema tão comum nas comunicações, inúmeras teorias sobre como lidar com isso se desenvolveram sob os ramos da matemática aplicada, como a teoria da informação e a teoria da codificação.
Um método comumente usado é chamado de solicitação de repetição automática (ARQ), que simplesmente envolve o destinatário verificando a transmissão quanto a erros e solicitando retransmissão, caso ocorra. Isso às vezes é chamado de correção de erro reverso. A codificação de canal, por outro lado, é uma técnica de correção direta de erros (FEC). O remetente prepara os bits para transmissão usando um algoritmo especial conhecido como código de correção de erros, que é decodificado no lado receptor. Ambos os métodos também são frequentemente usados de maneira híbrida, permitindo que pequenos erros na transmissão sejam reparados com um código de canal, com os principais erros exigindo uma retransmissão completa.
A primeira técnica de codificação de canal foi criada por um matemático chamado Richard Hamming, que desenvolveu o que é conhecido como código de Hamming. Este foi o primeiro código de correção de erro de encaminhamento, o que implica a inclusão de dígitos binários adicionais na transmissão que são chamados de bits de paridade. Um cálculo inteligente dos bits de paridade na extremidade receptora da transmissão revelará se ocorreram erros na transmissão, onde eles estão na sequência de bits e como repará-los para recuperar a transmissão original.
O código de Hamming se enquadra na família de métodos de codificação de canais denominados códigos de bloco, dos quais muitos foram desenvolvidos ao longo dos anos. Os códigos de bloco normalmente envolvem os bits sendo coletados em blocos de comprimentos fixos, que são então chamados de palavras de código. Cada palavra de código recebe os bits de verificação apropriados para decodificação pelo destinatário. Os métodos de código de bloco tendem a aumentar o tamanho da transmissão devido aos bits adicionados na palavra de código, que podem afetar a largura de banda do canal.
Outro método de codificação de canal é conhecido como código convolucional. Esses métodos são muito mais rápidos e podem codificar um fluxo de bits de qualquer tamanho. Um código comumente usado desse tipo é chamado de código Viterbi, criado pelo matemático italiano Andrew Viterbi. A desvantagem desse método é que, à medida que o comprimento do código convolucional aumenta, aumenta sua complexidade ao decodificar. Em muitos casos, códigos convolucionais são usados em combinação com códigos de bloco no que é conhecido como códigos de correção de erros concatenados.