Che cos'è FEC e come posso usarlo?
Nei sistemi di comunicazione, nella teoria dell'informazione e nella teoria della codifica, la correzione degli errori in avanti (FEC) è una tecnica utilizzata per controllare gli errori nella trasmissione dei dati su canali di comunicazione inaffidabili o rumorosi. FEC deve i suoi inizi al lavoro pionieristico di Claude Shannon nel 1948 sulla comunicazione affidabile su canali di trasmissione rumorosi. Il tema centrale di Shannon era che se la velocità di segnalazione del sistema è inferiore alla capacità del canale, è possibile ottenere una comunicazione affidabile se si scelgono tecniche di codifica e decodifica adeguate.

Nella Figura 1 viene illustrato un modello semplificato di un sistema codificato. I dati di trasmissione non elaborati sono rappresentati come una sequenza di messaggiu. Il codificatore FEC trasforma il messaggiouin una parola in codicevaggiungendo dati ridondanti, prima di inserire il canale inaffidabile o rumoroso. La ridondanza aggiunta consente al decodificatore del ricevitore di rilevare un numero limitato di errori che possono verificarsi nel messaggio e spesso di correggere questi errori senza ritrasmissione, con l'obiettivo che la sequenza di messaggi originaleuviene recuperato correttamente all'uscita del decodificatore.
Tipi di codici FEC
Due tipi di codici strutturalmente diversi sono oggi di uso comune: codici a blocchi e codici convoluzionali. Il codificatore di un codice a blocchi divide la sequenza di informazioniuin blocchi di messaggi diOkaybit di informazione (simboli) ciascuno e trasforma ogni messaggiouindipendentemente in una parola in codice,n-bit (simboli)v. Il rapportoR=Okay/nè chiamato code rate. I bit ridondanti (simboli),n-k, fornire al codice la capacità di combattere il rumore del canale.
Un parametro importante di un codice di blocco è la distanza minima,dMin, questa è la distanza tra due parole in codice più vicine, che rappresenta il numero minimo di modifiche ai dati necessarie per modificare una parola in codice valida in un'altra. Questo parametro determina le funzionalità di rilevamento e correzione degli errori di un codice. Normalmente un codice FEC è in grado di rilevaredMin-1 errori per parola in codice e correggere fino a (dMin-1)/2 errori per parola in codice. Ad esempio, codice Reed Solomon, RS (544, 514,t=15,m=10), è un codice di blocco con 514 simboli di informazioni e 30 simboli ridondanti. Ogni simbolo ha 10 bit. La sua distanza minima èdMin=31 tale che può correggere fino a (dMin-1)/2=15 errori di simbolo per parola in codice.
Anche il codificatore per un codice convoluzionale accettaOkay-blocchi bit della sequenza di informazioniue produce una sequenza codificatavdin-blocchi di simboli. Tuttavia, ogni blocco codificato dipende non solo dal corrispondenteOkay-bit message block allo stesso tempo unità ma anche sumblocchi di messaggi precedenti. Oltre ai bit ridondanti,n-k, viene aggiunta una maggiore ridondanza aumentando l'ordine di memoriamdel codice per ottenere una trasmissione affidabile su un canale rumoroso.
Sulla base della teoria di Shannon [1], più lunga è la parola in codice, più potente è la capacità di correzione degli errori che fornisce. Tuttavia, la complessità della codifica aumenta anche con la lunghezza della parola in codice. Per ottenere un migliore compromesso tra complessità e prestazioni di codifica, esistono alcune tecniche per costruire codici lunghi e potenti da codici di componenti brevi, come codici prodotto, codici concatenati e codici interlacciati.
La Figura 2 mostra un codice prodotto bidimensionale formato da due codici C1(n1, k1) e C2(n2, k2) con distanza minimadmin1edmin2rispettivamente. Ogni riga del codice prodotto C1x C2è una parola in codice in C1e ogni colonna è una parola in codice in C2. Il codice prodotto è in grado di correggere qualsiasi combinazione di (dmin1dmin2-1)/2 errori.

Nella Figura 3 viene illustrato un codice concatenato a un livello con un codice esterno C1(n1, k1) con distanza minimadmin1e un codice interno C2(n2, k2) con distanza minimadmin2. La distanza minima della loro concatenazione è almenodmin1dmin2.

La Figura 4 mostra la trasmissione di un codice interlacciato. Dato un codice di blocco (n,k) C, è possibile costruire un codice di blocco (λn, λk) interlacciando, cioè semplicemente disponendo λ parole di codice in C in λ righe di un array rettangolare e quindi trasmettendo l'array colonna per colonna. Anche se la distanza minima del codice interlacciato è ancoradMincome singolo codice C, può suddividere gli errori di burst lungo in λ diverse parole in codice.

Codici FEC più avanzati, come i codici turbo e i codici LDPC (Low-Density Parity-Check), sono stati inventati dagli accademici e adottati dall'industria negli ultimi decenni per avvicinarsi al limite di Shannon (o capacità del canale). Tuttavia, i loro eccellenti miglioramenti delle prestazioni sono normalmente pagati da una grande complessità e latenza di codifica / decodifica.
Ci sono quattro fattori critici da considerare quando si seleziona un codice FEC e uno schema di codifica appropriati per un particolare sistema di comunicazione. Per mantenere un throughput elevato o evitare di aumentare significativamente la velocità di collegamento, iltasso di codicedeve essere alto. Per compensare la perdita di canale o rilassare i requisiti del rapporto segnale/rumore (SNR) o del bit error rate (BER) ai filtri dei dati decisionali nel ricevitore, un grandeguadagno di codificaè auspicabile. Tuttavia gli svantaggi della FEC sono ilatenza di codificaecomplessità di codificaciò aumenterà il tempo di trasmissione e la potenza / costo del sistema.
Applicazioni FEC per sistemi di collegamento seriale
Il panorama della tecnologia FEC per i sistemi di comunicazione a filo è mostrato nella Figura 5 e include sia i collegamenti elettrici che ottici. Per i collegamenti elettrici, l'industria ha recentemente incorporato aggiornamenti del formato di segnalazione dal formato di segnalazione a due livelli (NRZ) al formato di segnalazione a quattro livelli (PAM4) durante la transizione da 25 Gb/s a 50 Gb/s di velocità dati di collegamento.
Una delle principali sfide di progettazione di PAM4 SerDes è la penalità di rilevamento di PAM4 su NRZ, circa 9,54 dB o anche più grande se si considera il degrado del margine orizzontale dovuto a incroci di segnali multilivello. Pertanto, FEC diventa una parte importante della soluzione di sistema PAM4 per compensare questa penalità di rilevamento. RS (544, 514, 15) FEC, noto anche come KP4 FEC, è stato ampiamente adottato nei collegamenti PAM-4. Fornisce sistemi Ethernet 200/400G con un guadagno di codifica fino a 7 dB, aggiungendo una penalità di latenza di centinaia di nano-secondi (ns) come costo. I codici FEC ad alto guadagno come i codici LDPC (Low Density Parity Check) e i codici di prodotto Turbo (TPC) sono normalmente considerati per i sistemi di trasmissione ottica a lunga distanza con il costo di una maggiore latenza e complessità di codifica. Per le applicazioni a bassa latenza, è possibile utilizzare codici a blocchi semplici brevi con un guadagno di codifica e una complessità moderati.















































