Blockera kod - Block code

I kodningsteori , blockkoder är en stor och viktig familj av felrättande koder som kodar data i block. Det finns ett stort antal exempel på blockkoder, varav många har ett brett spektrum av praktiska tillämpningar. Den abstrakta definitionen av blockkoder är begreppsmässigt användbar eftersom den tillåter kodande teoretiker, matematiker och datavetare att studera begränsningarna för alla blockkoder på ett enhetligt sätt. Sådana begränsningar har ofta formen av gränser som relaterar olika parametrar för blockkoden till varandra, såsom dess hastighet och dess förmåga att upptäcka och korrigera fel.

Exempel på blockkoder är Reed – Solomon-koder , Hamming-koder , Hadamard-koder , Expanderkoder , Golay-koder och Reed – Muller-koder . Dessa exempel tillhör också klassen linjära koder och kallas därför linjära blockkoder . Mer specifikt är dessa koder kända som algebraiska blockkoder eller cykliska blockkoder, eftersom de kan genereras med användning av booleska polynom.

Algebraiska blockkoder är vanligtvis hårt avkodade med algebraiska avkodare.

Termen blockkod kan också hänvisa till vilken felkorrigeringskod som verkar på ett block av bitar av inmatningsdata för att producera bitar av utdata . Följaktligen är blockkodaren en minnesfri anordning. Enligt denna definition skulle också koder som turbokoder , avslutade faltningskoder och andra iterativt avkodningsbara koder (turboliknande koder) betraktas som blockkoder. En icke-avslutad faltningskodare skulle vara ett exempel på en icke-blockerad (oinramad) kod, som har minne och istället klassificeras som en trädkod .

Denna artikel handlar om "algebraiska blockkoder".

Blockkoden och dess parametrar

Felkorrigeringskoder används för att på ett tillförlitligt sätt sända digital data över opålitliga kommunikationskanaler som utsätts för kanalbrus . När en avsändare vill sända en möjligen mycket lång dataström med hjälp av en blockkod, bryter avsändaren upp strömmen i bitar av viss fast storlek. Varje sådan bit kallas meddelande och proceduren som ges av blockkoden kodar varje meddelande individuellt till ett kodord, även kallat ett block i samband med blockkoder. Avsändaren överför sedan alla block till mottagaren, som i sin tur kan använda någon avkodningsmekanism för (förhoppningsvis) att återställa de ursprungliga meddelandena från de eventuellt skadade mottagna blocken. Prestandan och framgången för den totala överföringen beror på kanalens parametrar och blockkoden.

Formellt är en blockkod en injektiv kartläggning

.

Här är en ändlig och icke-fri uppsättning och och är heltal. Betydelsen och betydelsen av dessa tre parametrar och andra parametrar relaterade till koden beskrivs nedan.

Alfabetet Σ

Dataströmmen som ska kodas modelleras som en sträng över något alfabet . Storleken på alfabetet skrivs ofta som . Om så kallas blockkoden en binär blockkod. I många applikationer är det användbart att överväga att vara en huvudmakt och att identifiera sig med det begränsade fältet .

Meddelandets längd k

Meddelanden är delar av , det vill säga längdsträngar . Följaktligen kallas numret meddelandelängden eller dimensionen för en blockkod.

Blocklängden n

Den blocklängd av en blockkod är antalet symboler i ett block. Följaktligen är elementen av strängar av längd och motsvarar block som kan tas emot av mottagaren. Därför kallas de också mottagna ord. Om någon meddelande , då kallas kodord av .

Hastigheten R

Den hastighet av en blockkod är definierad som förhållandet mellan dess meddelandelängd och dess blocklängd:

.

En stor hastighet innebär att mängden faktiskt meddelande per överfört block är hög. I denna mening mäter hastigheten överföringshastigheten och kvantiteten mäter den overhead som uppstår på grund av kodningen med blockkoden. Det är ett enkelt informationsteoretiskt faktum att hastigheten inte kan överstiga eftersom data i allmänhet inte kan komprimeras förlustfritt. Formellt följer detta av det faktum att koden är en injektiv karta.

Avståndet d

Det avstånd eller minsta avståndet d av en blockkod är det minsta antalet positioner i vilka som helst två distinkta kodord skiljer, och den relativa avståndet är fraktionen . Formellt, för mottagna ord , låt beteckna Hamming-avståndet mellan och , det vill säga antalet positioner där och skiljer sig åt. Då definieras minsta avstånd för koden som

.

Eftersom vilken kod som helst måste vara injicerande kommer två kodord inte att vara överens i minst en position, så avståndet för vilken kod som helst är minst . Dessutom är avståndet lika med minimivikten för linjära blockkoder eftersom:

.

Ett större avstånd möjliggör mer felkorrigering och upptäckt. Om vi ​​till exempel bara tar hänsyn till fel som kan ändra symboler för det skickade kodordet men aldrig radera eller lägga till dem, så är antalet fel det antal positioner där det skickade kodordet och det mottagna ordet skiljer sig åt. En kod med avståndet d tillåter mottagaren att detektera upp till överföringsfel eftersom ändring av positioner för ett kodord aldrig av misstag kan ge ett annat kodord. Om inte mer än överföringsfel inträffar kan mottagaren dessutom avkoda det mottagna ordet till ett kodord. Detta beror på att varje mottaget ord har högst ett kodord på avstånd . Om fler än överföringsfel inträffar kan mottagaren inte unikt avkoda det mottagna ordet i allmänhet eftersom det kan finnas flera möjliga kodord. Ett sätt för mottagaren att hantera denna situation är att använda listavkodning , där avkodaren matar ut en lista över alla kodord i en viss radie.

Populär notation

Notationen beskriver en blockkod över ett alfabet med storlek , med en blocklängd , meddelandelängd och avstånd . Om blockkoden är en linjär blockkod används fyrkantiga parenteser i notationen för att representera detta faktum. För binära koder med tappas ibland indexet. För maximala avståndsseparabla koder är avståndet alltid , men ibland är det exakta avståndet inte känt, inte trivialt att bevisa eller ange eller inte behövs. I sådana fall kan -komponenten saknas.

Ibland, särskilt för icke-blockkoder, används notationen för koder som innehåller kodord med längd . För blockkoder med meddelanden med längd över ett alfabet av storlek skulle detta nummer vara .

Exempel

Som nämnts ovan finns det ett stort antal felkorrigeringskoder som faktiskt är blockkoder. Den första felkorrigerande koden var Hamming (7,4) -koden, utvecklad av Richard W. Hamming 1950. Denna kod förvandlar ett meddelande bestående av 4 bitar till ett kodord på 7 bitar genom att lägga till 3 paritetsbitar. Därför är den här koden en blockkod. Det visar sig att det också är en linjär kod och att den har avstånd 3. I förkortningen ovan betyder detta att Hamming (7,4) -koden är en kod.

Reed – Solomonkoder är en familj av koder med och som en primärmakt . Rangkoder är koderfamiljer med . Hadamard-koder är en familj av koder med och .

Feldetekterings- och korrigeringsegenskaper

Ett kodord kan betraktas som en punkt i -dimensionsutrymmet och koden är delmängden av . En kod har avstånd betyder att det inte finns något annat kodord i Hamming-bollen centrerad på med radie , vilket definieras som samlingen av -dimensionsord vars Hamming-avstånd till inte är mer än . På samma sätt har (minsta) avstånd följande egenskaper:

  • kan upptäcka fel: Eftersom ett kodord är det enda kodordet i Hamming-bollen centrerad i sig själv med radie , kan inget felmönster eller färre fel ändra ett kodord till ett annat. När mottagaren upptäcker att den mottagna vektorn inte är ett kodord för detekteras felen (men ingen garanti att korrigera).
  • kan korrigera fel. Eftersom ett kodord är det enda kodordet i Hamming-bollen centrerad i sig själv med radie , överlappar inte de två Hamming-kulorna som är centrerade på två olika kodord med båda radierna. Om vi ​​anser felkorrigering som att hitta kodordet närmast det mottagna ordet , så länge antalet fel inte är mer än , finns det bara ett kodord i hammingkulan centrerad på med radie , därför kunde alla fel korrigeras .
  • För att avkoda i närvaro av mer än fel kan listavkodning eller maximal sannolikhetsavkodning användas.
  • kan korrigera raderingar . Med radering betyder det att positionen för den raderade symbolen är känd. Korrigering kan uppnås genom att passera avkodning: vid passering fylls den raderade positionen med symbolen och felkorrigering utförs. Det måste passera att antalet fel inte är mer än och därför kan raderingarna korrigeras.

Nedre och övre gränser för blockkoder

Image
Hamminggräns
Image
Det finns teoretiska gränser (som Hamming-gränsen), men en annan fråga är vilka koder som faktiskt kan konstrueras. Det är som att packa sfärer i en låda i många dimensioner. Detta diagram visar de konstruerbara koder, som är linjära och binära. De x -axeln visar antalet skyddade symboler k , den y axel antalet nödvändiga symboler check n-k . Plottade är gränserna för olika Hamming-avstånd från 1 (oskyddad) till 34. Markerade med prickar är perfekta koder:
  • ljus orange på x- axeln: triviala oskyddade koder
  • orange på y- axeln: triviala upprepningskoder
  • mörk orange på datamängden d = 3: klassiska perfekta Hamming-koder
  • mörkröd och större: den enda perfekta binära Golay-koden

Familj med koder

kallas kodfamilj , var är en kod med monoton ökning .

Familjegrad för koder C definieras som

Relativt avstånd från familjen av koder C definieras som

För att utforska förhållandet mellan och är en uppsättning nedre och övre gränser för blockkoder kända.

Hamming bunden

Singleton bunden

Singleton-gränsen är att summan av frekvensen och det relativa avståndet för en blockkod inte kan vara mycket större än 1:

.

Med andra ord uppfyller varje blockkod ojämlikheten . Reed – Solomon-koder är icke-triviala exempel på koder som uppfyller singleton bunden med jämlikhet.

Plotkin bunden

För , . Med andra ord .

För det allmänna fallet gäller följande Plotkin-gränser för alla med avstånd d :

  1. Om
  2. Om

För alla q- koder med avstånd ,

Gilbert – Varshamov bunden

, där , är q -ary entropifunktionen.

Johnson bunden

Definiera . Låta vara det maximala antalet kodord i en Hamming boll med radien e för någon kod av avståndet d .

Sedan har vi Johnson Bound  : om

Elias – Bassalygo bunden

Sfärförpackningar och galler

Blockkoder är knutna till sfärpaketeringsproblemet som har fått viss uppmärksamhet genom åren. I två dimensioner är det lätt att visualisera. Ta ett gäng öre platt på bordet och skjut dem ihop. Resultatet är ett sexkantigt mönster som ett bi-bo. Men blockkoder är beroende av fler dimensioner som inte lätt kan visualiseras. Den kraftfulla Golay-koden som används i rymdkommunikation använder 24 dimensioner. Om de används som en binär kod (som den vanligtvis är) hänvisar dimensionerna till längden på kodordet som definierats ovan.

Teorin om kodning använder N- dimensionell sfärmodell. Till exempel hur många öre som kan packas i en cirkel på en bordsskiva eller i tre dimensioner, hur många kulor kan packas i en jordglob. Andra överväganden anger valet av en kod. Till exempel kommer hexagonpackning i begränsningen av en rektangulär låda att lämna tomt utrymme i hörnen. När dimensionerna blir större blir andelen tomt utrymme mindre. Men vid vissa dimensioner använder förpackningen allt utrymme och dessa koder är så kallade perfekta koder. Det finns väldigt få av dessa koder.

En annan egenskap är antalet grannar som ett enda kodord kan ha. Återigen, betrakta öre som ett exempel. Först packar vi pennorna i ett rektangulärt rutnät. Varje öre kommer att ha fyra nära grannarna (och fyra i hörnen som ligger längre bort). I en sexkant kommer varje öre att ha 6 nära grannar. Respektivt, i tre och fyra dimensioner, ges den maximala packningen av 12-ansiktet och 24-cellen med 12 respektive 24 grannar. När vi ökar dimensionerna ökar antalet nära grannar mycket snabbt. I allmänhet ges värdet av de kyssande siffrorna .

Resultatet är att antalet sätt för buller för att få mottagaren att välja en granne (därmed ett fel) växer också. Detta är en grundläggande begränsning av blockkoder, och faktiskt alla koder. Det kan vara svårare att orsaka ett fel för en enskild granne, men antalet grannar kan vara tillräckligt stort så att den totala felsannolikheten faktiskt lider.

Se även

Referenser

externa länkar