Hvad er FEC, og hvordan bruger jeg det?
I kommunikationssystemer, informationsteori og kodningsteori er forward error correction (FEC) en teknik, der bruges til at kontrollere fejl i datatransmission over upålidelige eller støjende kommunikationskanaler. FEC skylder sin begyndelse til Claude Shannon's pionerarbejde i 1948 på pålidelig kommunikation over støjende transmissionskanaler. Shannons centrale tema var, at hvis systemets signaleringshastighed er mindre end kanalkapaciteten, kan pålidelig kommunikation opnås, hvis man vælger korrekte kodnings- og afkodningsteknikker.

Figur 1 viser en forenklet model af et kodet system. De rå transmissionsdata er repræsenteret som en meddelelsessekvensu. FEC-koderen transformerer meddelelsenutil et kodeordv ved at tilføje redundante data, før du går ind i den upålidelige eller støjende kanal. Den tilføjede redundans gør det muligt for modtagerdekoderen at detektere et begrænset antal fejl, der kan forekomme i meddelelsen, og ofte at rette disse fejl uden gentransmission med det mål, at den oprindelige meddelelsessekvensugendannes med succes ved udgangen af dekoderen.
Typer af FEC-koder
To strukturelt forskellige typer koder er i almindelig brug i dag: blokkoder og foldningskoder. Indkoderen til en blokkode opdeler informationssekvensenuind i beskedblokke afkinformationsbits (symboler) hver og transformerer hver beskeduuafhængigt til et kodeord,n-bit (symboler)v. RadioenR = k/nkaldes kodesatsen. De overflødige bits (symboler),n-k, forsyn koden med evnen til at bekæmpe kanalstøjen.
En vigtig parameter i en blokkode er minimumsafstanden,dmin, dette er afstanden mellem to nærmeste kodeord, som repræsenterer det mindste antal dataændringer, der kræves for at ændre et gyldigt kodeord til et andet. Denne parameter bestemmer fejldetekterings- og korrektionsmulighederne for en kode. Normalt er en FEC-kode i stand til at detekteredmin-1 fejl pr. kodeord og ret op til (dmin-1)/2 fejl pr. kodeord. For eksempel, Reed Solomon-kode, RS (544, 514,t=15, m=10), er en blokkode med 514 informationssymboler og 30 overflødige symboler. Hvert symbol har 10 bits. Dens mindste afstand erdmin=31 sådan, at den kan rette op til (dmin-1)/2=15 symbolfejl pr. kodeord.
Indkoderen til en foldningskode accepterer også k-bitblokke af informationssekvensenuog producerer en kodet sekvensvafn-symbolblokke. Hver kodet blok afhænger dog ikke kun af den tilsvarendek-bit beskedblok på samme tidsenhed, men også tændtmtidligere beskedblokke. Udover overflødige bits,n-k, tilføjes mere redundans ved at øge hukommelsesrækkefølgenmaf koden for at opnå pålidelig transmission over en støjende kanal.
Baseret på Shannon-teorien [1], jo længere kodeordet er, desto stærkere fejlkorrigerende kapacitet giver det. Imidlertid øges kodningskompleksiteten også med kodeordslængden. For at opnå bedre afvejning mellem kompleksitet og kodningsydeevne er der nogle få teknikker til at konstruere lange kraftfulde koder ud fra korte komponentkoder, såsom produktkoder, sammenkædede koder og sammenflettede koder.
Figur 2 viser en todimensionel produktkode dannet af to koder C1(n1, k1) og C2(n2, k2) med minimumsafstanddmin1ogdmin2, henholdsvis. Hver række af produktkoden C1 x C2er et kodeord i C1og hver kolonne er et kodeord i C2. Produktkoden er i stand til at rette enhver kombination af (dmin1dmin2-1)/2 fejl.

Figur 3 viser en et-niveau sammenkædet kode med en ydre kode C1(n1, k1) med minimumsafstanddmin1og en indre kode C2(n2, k2) med minimumsafstanddmin2. Minimumsafstanden for deres sammenkædning er mindstdmin1dmin2.

Figur 4 viser transmission af en sammenflettet kode. Givet en (n,k) blokkode C, er det muligt at konstruere en (λn, λk) blokkode ved interleaving, det vil sige simpelthen ved at arrangere λ kodeord i C i λ rækker af et rektangulært array og derefter transmittere array kolonnen vha. kolonne. Selvom minimumsafstanden for den interleaved kode stadig erdminsom individuel kode C, kan den opdele de lange burst-fejl i λ forskellige kodeord.

Mere avancerede FEC-koder, såsom turbokoder og LDPC-koder (low-density parity-check), er blevet opfundet af akademikere og vedtaget af industrien i de sidste årtier for at nærme sig Shannon-grænsen (eller kanalkapaciteten). Imidlertid betales deres fremragende ydeevnegevinster normalt af stor kodnings-/afkodningskompleksitet og latens.
Der er fire kritiske faktorer at overveje, når du vælger en korrekt FEC-kode og kodningsskema for et bestemt kommunikationssystem. For at opretholde høj gennemstrømning eller undgå en væsentlig forøgelse af linkhastighedenkode satsskal være høj. For at kompensere kanaltab eller slappe signal til støjforhold (SNR) eller bitfejlfrekvens (BER) krav ved beslutningsskærere i modtagerenkodningsforstærkninger ønskeligt. Men ulemperne ved FEC erkodningsforsinkelseogkodningskompleksitetsom vil øge transmissionstiden og systemeffekten/omkostningerne.
FEC-applikationer til serielle linksystemer
Landskabet af FEC-teknologi til ledningskommunikationssystemer er vist i figur 5 og inkluderer både elektriske og optiske forbindelser. For elektriske links har industrien for nylig indarbejdet signalformatopdateringer fra to-niveau signaleringsformat (NRZ) til fire-niveau signaleringsformat (PAM4) under overgangen fra 25 Gb/s til 50 Gb/s linkdatahastigheder.
En af de største designudfordringer ved PAM4 SerDes er detektionsstraffen for PAM4 over NRZ, omkring 9,54 dB eller endnu større, hvis man overvejer horisontal marginforringelse på grund af signalkrydsninger på flere niveauer. Derfor bliver FEC en vigtig del af PAM4-systemløsningen for at udligne denne detektionsstraf. RS (544, 514, 15) FEC, også kendt som KP4 FEC, er blevet brugt bredt i PAM{10}}-links. Det giver 200/400G Ethernet-systemer med op til 7dB kodningsforstærkning, mens den tilføjer en latensstraf på hundredvis af nano-sekunder (ns) som en omkostning. High-gain FEC-koder såsom LDPC-koder (low density parity check) og Turbo-produktkoder (TPC) overvejes normalt for optiske transmissionssystemer på lang afstand med omkostningerne ved større kodningsforsinkelse og kompleksitet. Til applikationer med lav latens kan korte simple blokkoder med en moderat kodningsforstærkning og kompleksitet bruges.















































