O objectivo geral da codificação de canal é transmitir o máximo de dados possível em tão pouco capacidade de transmissão , ou largura de banda , de um sistema de comunicação possível , mantendo a qualidade de transmissão aceitável. Nas comunicações digitais , a qualidade de transmissão é determinada pela taxa de erro de bit - a percentagem de erros de bits que , em relação ao número total de bits recebidos - no receptor . O receptor detecta se cada elemento de uma transmissão , conhecida como uma palavra de código , contém erros e , idealmente , corrige esses erros.
ARQ contra FEC
Os dois principais métodos de controle de erros são Pedido automático de repetição ( ARQ ) e Forward Error Correction (FEC ) . Em ARQ , quando um circuito receptor detecta erros em um bloco de dados , ele solicita que os dados sejam retransmitidos , enquanto que no FEC , os dados são codificados para que o receptor possa corrigir , bem como detectar erros . A idéia-chave da FEC é transmitir duplicado suficiente ou dados redundantes para permitir que o receptor para se recuperar de erros por conta própria. ARQ é relativamente barato de implementar e é muitas vezes preferido para transmissão simultânea, independente dos dados em ambas as direções ao longo de um canal de mão dupla, conhecida como a comunicação full- duplex. FEC , por outro lado , é usado para half-duplex ( one- way) de comunicação.
Bloco Códigos
Os dois principais tipos de código de canal são conhecidos como " códigos de bloco " e " códigos convolucionais . " Para criar um código de bloco , os dados são divididos em blocos , cujo comprimento , em bits , é representada pela letra " k " e um número de bits de paridade ou verificação , representado por uma letra "r ", é adicionado a cada bloco . O resultado final é uma palavra de código com um comprimento total de bits de "n" , onde n = k + r . Códigos de bloco normalmente envolvem um trade-off entre a eficiência , a confiabilidade ea complexidade dos dados de codificação e decodificação .
Códigos convolucionais
A criação de um código convolucional envolve codifica uma fluxo de dados , em vez de blocos de dados . A sequência de bits de um código de convolução não depende apenas dos bits de corrente de dados, mas também sobre os bits de dados anteriores . Códigos convolucionais são tipicamente descodificado por um conjunto de regras , chamado o algoritmo de Viterbi , e são particularmente bem adequadas para os canais de comunicação corrompidos por ruído correspondendo a um modelo matemático conhecido como ruído branco gaussiano aditivo ( AWGN ) .