Ce este FEC și cum îl folosesc?
În sistemele de comunicații, teoria informațiilor și teoria codificării, corectarea erorilor directe (FEC) este o tehnică utilizată pentru controlul erorilor în transmisia de date pe canale de comunicare nesigure sau zgomotoase. FEC își datorează începuturile muncii de pionierat a lui Claude Shannon în 1948 privind comunicarea fiabilă prin canale de transmisie zgomotoase. Tema centrală a lui Shannon a fost că, dacă rata de semnalizare a sistemului este mai mică decât capacitatea canalului, se poate obține o comunicare fiabilă dacă se alege tehnici adecvate de codificare și decodare.

Figura 1 prezintă un model simplificat al unui sistem codificat. Datele brute de transmisie sunt reprezentate ca o secvență de mesajeu. Codificatorul FEC transformă mesajuluîntr-un cuvânt de codv prin adăugarea de date redundante, înainte de a intra în canalul nesigur sau zgomotos. Redundanța adăugată permite decodorului receptor să detecteze un număr limitat de erori care pot apărea în mesaj și, adesea, să corecteze aceste erori fără retransmitere, cu scopul ca secvența de mesaje inițialăueste recuperat cu succes la ieșirea decodorului.
Tipuri de coduri FEC
Două tipuri de coduri diferite din punct de vedere structural sunt utilizate în mod curent astăzi: coduri bloc și coduri convoluționale. Codificatorul pentru un cod bloc împarte secvența de informațiiuîn blocuri de mesaje alekbiți de informații (simboluri) fiecare și transformă fiecare mesajuindependent într-un cuvânt de cod,n-bit (simboluri)v. RaportulR = k/nse numește rata de cod. Biții redundanți (simboluri),n-k, oferă codului capacitatea de a combate zgomotul canalului.
Un parametru important al unui cod de bloc este distanța minimă,dmin, aceasta este distanța dintre cele mai apropiate două cuvinte de cod, care reprezintă numărul minim de modificări de date necesare pentru a modifica un cuvânt de cod valid în altul. Acest parametru determină capabilitățile de detectare și corectare a erorilor ale unui cod. În mod normal, un cod FEC este capabil să detectezedmin-1 erori per cuvânt de cod și corectați până la (dmin-1)/2 erori pentru fiecare cuvânt de cod. De exemplu, codul Reed Solomon, RS (544, 514,t=15, m=10), este un cod de bloc cu 514 simboluri de informații și 30 de simboluri redundante. Fiecare simbol are 10 biți. Distanța sa minimă estedmin=31 astfel încât să poată corecta până la (dmin-1)/2=15 erori de simbol pentru fiecare cuvânt de cod.
Codificatorul pentru un cod convoluțional acceptă și el k-blocuri de biți ale secvenței informaționaleuși produce o secvență codificatăvden-blocuri cu simboluri. Cu toate acestea, fiecare bloc codificat depinde nu numai de blocul corespunzătork-bit mesaj bloc în aceeași unitate de timp, dar și pornitmblocurile de mesaje anterioare. Pe lângă biții redundanți,n-k, se adaugă mai multă redundanță prin creșterea ordinii memorieima codului pentru a realiza o transmisie fiabilă pe un canal zgomotos.
Pe baza teoriei Shannon [1], cu cât cuvântul de cod este mai lung, cu atât mai puternică oferă capacitatea de corectare a erorilor. Cu toate acestea, complexitatea codificării crește și cu lungimea cuvântului de cod. Pentru a obține un compromis mai bun între complexitate și performanța de codare, există câteva tehnici pentru construirea de coduri lungi și puternice din coduri de componente scurte, cum ar fi coduri de produs, coduri concatenate și coduri intercalate.
Figura 2 prezintă un cod de produs bidimensional format din două coduri C1(n1, k1) și C2(n2, k2) cu distanța minimădmin1șidmin2, respectiv. Fiecare rând al codului de produs C1 x C2este un cuvânt de cod în C1și fiecare coloană este un cuvânt de cod în C2. Codul produsului este capabil să corecteze orice combinație de (dmin1dmin2-1)/2 erori.

Figura 3 prezintă un cod concatenat cu un singur nivel cu un cod exterior C1(n1, k1) cu distanța minimădmin1și un cod interior C2(n2, k2) cu distanța minimădmin2. Distanța minimă a concatenării lor este de cel puțindmin1dmin2.

Figura 4 prezintă transmisia unui cod intercalat. Având în vedere un cod de bloc (n,k) C, este posibil să se construiască un cod de bloc (λn, λk) prin intercalare, adică pur și simplu prin aranjarea λ cuvinte de cod în C în λ rânduri ale unui tablou dreptunghiular și apoi transmiterea coloanei matricei prin coloană. Chiar dacă distanța minimă a codului intercalat este încădminca cod individual C, poate sparge erorile lungi în λ cuvinte de cod diferite.

Codurile FEC mai avansate, cum ar fi codurile turbo și codurile de verificare a parității de joasă densitate (LDPC), au fost inventate de academicieni și adoptate de industrie în ultimele decenii pentru a se apropia de limita Shannon (sau capacitatea canalului). Cu toate acestea, câștigurile lor excelente de performanță sunt plătite în mod normal de complexitatea și latența mare de codare/decodare.
Există patru factori critici de luat în considerare atunci când alegeți un cod FEC adecvat și o schemă de codificare pentru un anumit sistem de comunicații. Pentru a menține un debit ridicat sau pentru a evita creșterea semnificativă a ratei de legătură,rata de codtrebuie să fie mare. Pentru a compensa piecâștig de codareeste de dorit. Cu toate acestea, dezavantajele FEC suntlatența de codareșicomplexitatea codificăriicare va crește timpul de transmisie și puterea/costul sistemului.
Aplicații FEC la sistemele de legături seriale
Peisajul tehnologiei FEC pentru sistemele de comunicații cu fir este prezentat în Figura 5 și include atât legături electrice, cât și optice. Pentru legăturile electrice, industria a încorporat recent actualizări ale formatului de semnalizare de la formatul de semnalizare pe două niveluri (NRZ) la formatul de semnalizare pe patru niveluri (PAM4) în timpul tranziției de la ratele de transmisie de 25 Gb/s la 50 Gb/s.
Una dintre provocările majore de proiectare ale PAM4 SerDes este penalizarea de detecție a PAM4 peste NRZ, aproximativ 9,54 dB sau chiar mai mare dacă se ține cont de degradarea marjei orizontale din cauza traversării semnalului pe mai multe niveluri. Prin urmare, FEC devine o parte importantă a soluției sistemului PAM4 pentru a compensa această penalizare de detectare. RS (544, 514, 15) FEC, cunoscut și ca KP4 FEC, a fost adoptat pe scară largă în legăturile PAM-4. Oferă sisteme Ethernet 200/400G cu un câștig de codare de până la 7dB, adăugând în același timp o penalizare de latență de sute de nanosecunde (ns) ca cost. Codurile FEC cu câștig ridicat, cum ar fi codurile de verificare a parității de densitate scăzută (LDPC) și codurile de produs Turbo (TPC) sunt în mod normal luate în considerare pentru sistemele de transmisie optică pe distanțe lungi, cu costul unei latențe și complexități mai mari de codare. Pentru aplicațiile cu latență scăzută, pot fi utilizate coduri bloc simple scurte, cu un câștig moderat de codare și complexitate.















































