Vad är FEC och hur använder jag det?

Dec 28, 2021

Lämna ett meddelande

Vad är FEC och hur använder jag det?

I kommunikationssystem, informationsteori och kodningsteori är forward error correction (FEC) en teknik som används för att kontrollera fel i dataöverföring över opålitliga eller brusiga kommunikationskanaler. FEC har sin början att tacka Claude Shannons banbrytande arbete 1948 på tillförlitlig kommunikation över bullriga överföringskanaler. Shannons centrala tema var att om systemets signaleringshastighet är mindre än kanalkapaciteten kan tillförlitlig kommunikation uppnås om man väljer korrekt kodnings- och avkodningsteknik.

FEC-2

Figur 1 visar en förenklad modell av ett kodat system. Den råa överföringsdatan representeras som en meddelandesekvensu. FEC-kodaren omvandlar meddelandetutill ett kodordgenom att lägga till redundant data, innan du går in i den opålitliga eller brusiga kanalen. Den extra redundansen gör det möjligt för mottagaravkodaren att upptäcka ett begränsat antal fel som kan uppstå i meddelandet, och ofta korrigera dessa fel utan återsändning, med målet att den ursprungliga meddelandesekvensenuåterställs framgångsrikt vid utgången från avkodaren.

 

Typer av FEC-koder

Två strukturellt olika typer av koder är vanliga idag: blockkoder och faltningskoder. Kodaren för en blockkod delar upp informationssekvensenui meddelandeblock avkinformationsbitar (symboler) var och en och transformerar varje meddelandeuoberoende till ett kodord,n-bit (symboler)v. FörhållandetR = k/nkallas kodhastigheten. De redundanta bitarna (symbolerna),n-k, tillhandahåll koden med förmågan att bekämpa kanalbruset.

En viktig parameter för en blockkod är det minsta avståndet,dmin, detta är avståndet mellan två närmaste kodord, som representerar det minsta antalet dataändringar som krävs för att ändra ett giltigt kodord till ett annat. Denna parameter bestämmer feldetekterings- och korrigeringsmöjligheterna för en kod. Normalt kan en FEC-kod detekteradmin-1 fel per kodord och korrigera upp till (dmin-1)/2 fel per kodord. Till exempel, Reed Solomon-kod, RS (544, 514,t=15, m=10), är en blockkod med 514 informationssymboler och 30 redundanta symboler. Varje symbol har 10 bitar. Dess minsta avstånd ärdmin=31 så att den kan korrigera upp till (dmin-1)/2=15 symbolfel per kodord.

Kodaren för en faltningskod accepterar också k-bitblock av informationssekvensenuoch producerar en kodad sekvensvavn-symbolblock. Emellertid beror varje kodat block inte bara på motsvarandek-bit meddelandeblock vid samma tidsenhet men också påmtidigare meddelandeblock. Förutom överflödiga bitar,n-k, mer redundans läggs till genom att öka minnesordningenmav koden för att uppnå tillförlitlig överföring över en brusig kanal.

Baserat på Shannon teori [1], ju längre kodordet är desto mer kraftfull felkorrigeringsförmåga ger det. Kodningskomplexiteten ökar dock med kodordslängden också. För att uppnå bättre avvägning mellan komplexitet och kodningsprestanda finns det några tekniker för att konstruera långa kraftfulla koder från korta komponenters koder, såsom produktkoder, sammanlänkade koder och interfolierade koder.

Figur 2 visar en tvådimensionell produktkod bildad av två koder C1(n1, k1) och C2(n2, k2) med minsta avstånddmin1ochdmin2, respektive. Varje rad i produktkoden C1 x C2är ett kodord i C1och varje kolumn är ett kodord i C2. Produktkoden kan korrigera valfri kombination av (dmin1dmin2-1)/2 fel.

FEC-3

Figur 3 visar en sammanfogad kod på en nivå med en yttre kod C1(n1, k1) med minsta avstånddmin1och en inre kod C2(n2, k2) med minsta avstånddmin2. Minsta avstånd för deras sammanlänkning är minstdmin1dmin2.

FEC-4

Figur 4 visar överföring av en interfolierad kod. Givet en (n,k) blockkod C är det möjligt att konstruera en (λn, λk) blockkod genom interfoliering, det vill säga helt enkelt genom att arrangera λ-kodord i C i λ-rader i en rektangulär array och sedan sända arraykolumnen med kolumn. Även om minimiavståndet för den interfolierade koden fortfarande är kvardminsom individuell kod C kan den dela upp de långa skurfelen i λ olika kodord.

figure4

Mer avancerade FEC-koder, såsom turbokoder och LDPC-koder (low-density parity-check), har uppfunnits av akademiker och antagits av industrin under de senaste decennierna för att närma sig Shannon-gränsen (eller kanalkapaciteten). Men deras utmärkta prestandavinster betalas normalt av stor kodnings-/avkodningskomplexitet och latens.

Det finns fyra kritiska faktorer att ta hänsyn till när man väljer en korrekt FEC-kod och kodningsschema för ett visst kommunikationssystem. För att bibehålla hög genomströmning eller undvika att avsevärt öka länkhastighetenkodkursmåste vara hög. För att kompensera kanalförlust eller avslappning av signal/brusförhållande (SNR) eller bitfelsfrekvens (BER) krav vid beslutsskärare i mottagaren en storkodningsförstärkningär önskvärt. Men nackdelarna med FEC ärkodningslatensochkodningskomplexitetsom kommer att öka överföringstiden och systemets effekt/kostnad.

FEC-applikationer till seriella länksystem

Landskapet för FEC-teknik för trådkommunikationssystem visas i figur 5 och inkluderar både elektriska och optiska länkar. För elektriska länkar har branschen nyligen införlivat signalformatuppdateringar från tvånivåsignaleringsformat (NRZ) till fyranivåsignaleringsformat (PAM4) under övergången från 25 Gb/s till 50 Gb/s länkdatahastigheter.

En av de stora designutmaningarna för PAM4 SerDes är detektionsstraffet för PAM4 över NRZ, cirka 9,54 dB eller ännu större om man överväger horisontell marginalförsämring på grund av flernivåsignalkorsningar. Därför blir FEC en viktig del av PAM4-systemlösningen för att kompensera för detta upptäcktsstraff. RS (544, 514, 15) FEC, även känd som KP4 FEC, har använts allmänt i PAM-4-länkar. Det ger 200/400G Ethernet-system med upp till 7dB kodningsförstärkning, samtidigt som det lägger till en latensstraff på hundratals nanosekunder (ns) som en kostnad. FEC-koder med hög förstärkning som LDPC-koder (low density parity check) och Turbo-produktkoder (TPC) övervägs normalt för optiska överföringssystem på långa avstånd med kostnaden för större kodningslatens och komplexitet. För applikationer med låg latens kan korta enkla blockkoder med en måttlig kodningsförstärkning och komplexitet användas.

FEC-5

Skicka förfrågan