O que é FEC, e como eu uso?
Nos sistemas de comunicação, teoria da informação e teoria da codificação, a fec (Forward error correction) é uma técnica usada para controlar erros na transmissão de dados em canais de comunicação não confiáveis ou barulhentos. A FEC deve seu início ao trabalho pioneiro de Claude Shannon em 1948 sobre comunicação confiável sobre canais de transmissão barulhentos. O tema central de Shannon era que, se a taxa de sinalização do sistema for menor que a capacidade do canal, uma comunicação confiável pode ser alcançada se escolhermos técnicas adequadas de codificação e decodificação.

A Figura 1 mostra um modelo simplificado de um sistema codificado. Os dados de transmissão bruto são representados como uma sequência de mensagensu. O codificador FEC transforma a mensagemuem uma palavra-códigovadicionando dados redundantes, antes de entrar no canal não confiável ou barulhento. A redundância adicional permite que o decodificador receptor detecte um número limitado de erros que podem ocorrer na mensagem e, muitas vezes, corrija esses erros sem re-transmissão, com o objetivo de que a sequência de mensagem originalué recuperado com sucesso na saída do decodificador.
Tipos de códigos FEC
Dois tipos de códigos estruturalmente diferentes estão em uso comum hoje: códigos de bloco e códigos convolucionais. O codificador para um código de bloco divide a sequência de informaçõesuem blocos de mensagens dekbits de informação (símbolos) cada um e transforma cada mensagemuindependentemente em uma palavra-código,n-bit (símbolos)v. A razãoR=k/né chamada de taxa de código. Os bits redundantes (símbolos),n-k, forneça ao código a capacidade de combater o ruído do canal.
Um parâmetro importante de um código de bloco é a distância mínima,dMin, esta é a distância entre duas palavras de código mais próximas, o que representa o número mínimo de alterações de dados necessárias para alterar uma palavra-código válida em outra. Este parâmetro determina os recursos de detecção e correção de erros de um código. Normalmente, um código FEC é capaz de detectardMin-1 erros por palavra-código e corrija até (dMin-1)/2 erros por palavra de código. Por exemplo, código Reed Solomon, RS (544, 514,t=15,m=10), é um código de bloco com 514 símbolos de informação e 30 símbolos redundantes. Cada símbolo tem 10 bits. Sua distância mínima édMin=31 de tal forma que pode corrigir até (dMin-1)/2=15 erros de símbolo por palavra-código.
O codificador para um código convolucional também aceitak-blocos bit da sequência de informaçõesue produz uma sequência codificadavden- blocos de símbolos. No entanto, cada bloco codificado depende não apenas do correspondentek-bit bloco de mensagens na mesma unidade de tempo, mas também emmblocos de mensagens anteriores. Além de pedaços redundantes,n-k, mais redundância é adicionada aumentando a ordem de memóriamdo código para obter transmissão confiável através de um canal barulhento.
Com base na teoria de Shannon [1], quanto mais tempo a palavra-código é a capacidade de correção de erro mais poderosa que ela fornece. No entanto, a complexidade da codificação aumenta com o comprimento da palavra-código também. Para obter uma melhor troca entre complexidade e desempenho de codificação, existem algumas técnicas para construir códigos longos e poderosos a partir de códigos de componentes curtos, como códigos de produtos, códigos concatenados e códigos intercalados.
A Figura 2 mostra um código de produto bidimensional formado por dois códigos C1(n1, k1) e C2(n2, k2) com distância mínimadmin1edmin2respectivamente. Cada linha do código do produto C1x C2é uma palavra-código em C1e cada coluna é uma palavra-código em C2. O código do produto é capaz de corrigir qualquer combinação de (dmin1dmin2-1)/2 erros.

A Figura 3 mostra um código concatenado de um nível com um código externo C1(n1, k1) com distância mínimadmin1e um código interno C2(n2, k2) com distância mínimadmin2. A distância mínima de sua concatenação é, pelo menos,dmin1dmin2.

A Figura 4 mostra a transmissão de um código intercalado. Dado um (n,k) código de bloco C, é possível construir um código de bloco (λn, λk) através da intercalação, que é simplesmente organizando palavras de código λ em C em linhas λ de uma matriz retangular e, em seguida, transmitindo a coluna de matriz por coluna. Mesmo que a distância mínima do código intercalado ainda sejadMincomo código individual C, ele pode quebrar os erros de explosão longa em λ diferentes palavras de código.

Códigos FEC mais avançados, como códigos turbo e códigos de verificação de paridade de baixa densidade (LDPC), foram inventados por acadêmicos e adotados pela indústria nas últimas décadas para se aproximar do limite de Shannon (ou capacidade do canal). No entanto, seus excelentes ganhos de desempenho são normalmente pagos pela grande complexidade de codificação/decodificação e latência.
Existem quatro fatores críticos a considerar ao selecionar um código FEC adequado e um esquema de codificação para um determinado sistema de comunicação. Para manter o alto rendimento ou evitar o aumento significativo da taxa de link dotaxa de códigoprecisa ser alto. Para compensar a perda do canal ou relaxar os requisitos de relação de sinal para ruído (SNR) ou taxa de erro de bit (BER) nos cortadores de decisão no receptor um grandeganho de codificaçãoé desejável. No entanto, as desvantagens do FEC são olatência de codificaçãoecomplexidade de codificaçãoque aumentará o tempo de transmissão e a potência/custo do sistema.
Aplicações FEC para sistemas de link serial
A paisagem da tecnologia FEC para sistemas de comunicação de linhas de fio é mostrada na Figura 5 e inclui links elétricos e ópticos. Para links elétricos, a indústria recentemente incorporou atualizações de formato de sinalização do formato de sinalização de dois níveis (NRZ) para o formato de sinalização de quatro níveis (PAM4) durante a transição de taxas de dados de link de 25 Gb/s para 50 Gb/s.
Um dos principais desafios de design do PAM4 SerDes é a penalidade de detecção do PAM4 sobre a NRZ, cerca de 9,54 dB ou até maior se considerar a degradação da margem horizontal devido a cruzamentos de sinal de vários níveis. Portanto, a FEC torna-se uma parte importante da solução do sistema PAM4 para compensar essa penalidade de detecção. RS (544, 514, 15) A FEC, também conhecida como KP4 FEC, tem sido amplamente adotada nos links PAM-4. Ele fornece sistemas Ethernet 200/400G com ganho de codificação de até 7dB, ao mesmo tempo em que adiciona uma penalidade de latência de centenas de nano-segundos (ns) como um custo. Códigos FEC de alto ganho, como códigos de verificação de paridade de baixa densidade (LDPC) e códigos de produtos Turbo (TPC) são normalmente considerados para sistemas de transmissão óptica de longa distância com o custo de maior latência e complexidade de codificação. Para aplicações de baixa latência, códigos de bloco simples curtos com um ganho de codificação moderado e complexidade poderiam ser usados.















































