Linjekode

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 28. januar 2021; verifikation kræver 1 redigering .

I matematik og informationsteori er en linjekode  en type blokkode, der bruges i fejldetekterings- og korrektionskredsløb. Lineære koder gør det i sammenligning med andre koder muligt at implementere mere effektive algoritmer til kodning og afkodning af information.

Grundlæggende

I processen med lagring af data og transmission af information via kommunikationsnetværk opstår der uundgåeligt fejl. Dataintegritetskontrol og fejlkorrektion er vigtige opgaver på mange niveauer af arbejde med information (især OSI - modellens fysiske , datalink- og transportlag ).

I kommunikationssystemer er flere strategier til håndtering af fejl mulige:

Fejldetekterings- og korrektionskoder

Korrektionskoder - koder, der bruges til at opdage eller rette fejl, der opstår under transmissionen af ​​information under påvirkning af interferens , såvel som under dens lagring.

For at gøre dette, når de skriver (transmitterer) til de nyttige data, tilføjer de specielt struktureret redundant information, og når de læser (modtager), bruges den til at opdage eller rette fejl. Naturligvis er antallet af fejl, der kan rettes, begrænset og afhænger af den specifikke kode, der anvendes.

Tæt relateret til fejlkorrigerende koder er fejldetektionskoder . I modsætning til førstnævnte kan sidstnævnte kun fastslå tilstedeværelsen af ​​en fejl i de overførte data, men ikke rette den.

Faktisk tilhører de anvendte fejldetekteringskoder de samme klasser af koder som fejlkorrigerende koder. Faktisk kan enhver fejlkorrigerende kode også bruges til at opdage fejl (ved at gøre det, vil den være i stand til at opdage flere fejl, end den var i stand til at rette).

Ifølge metoden til at arbejde med data er fejlkorrigerende koder opdelt i blokkoder , som opdeler information i fragmenter af konstant længde og behandler hver af dem separat, og foldningskoder , som arbejder med data som en kontinuerlig strøm.

Bloker koder

Lad den kodede information opdeles i bitlængdefragmenter, som konverteres til bitlængdekodeord . Så er den tilsvarende blokkode normalt angivet . I dette tilfælde kaldes nummeret kodesatsen .

Hvis koden efterlader de originale bits uændrede og tilføjer checks , kaldes en sådan kode systematisk , ellers ikke-systematisk .

Du kan indstille blokkoden på forskellige måder, herunder en tabel, hvor hvert sæt informationsbits er knyttet til en bit af kodeordet. God kode skal dog mindst opfylde følgende kriterier:

Det er let at se, at disse krav modsiger hinanden. Derfor er der et stort antal koder, som hver især egner sig til dens række af opgaver.

Næsten alle anvendte koder er lineære . Dette skyldes det faktum, at ikke-lineære koder er meget sværere at studere, og det er svært for dem at give en acceptabel nem kodning og afkodning.

Lineære mellemrum

Generering af matrix

Lad vektorerne være grundlaget for det lineære rum . Ifølge definitionen af ​​basis kan enhver vektor repræsenteres som en lineær kombination af basisvektorer: , eller i matrixform , som:

,

hvor kaldes det lineære rums generatormatrix .

Denne relation etablerer en forbindelse mellem vektorerne af koefficienter og vektorerne . Ved at liste alle vektorer af koefficienter kan du få alle vektorer . Med andre ord genererer matrixen et lineært rum.

Tjek matrix

En anden måde at definere lineære rum på er at beskrive dem i form af en afkrydsningsmatrix.

Lade være  et lineært k-dimensionelt underrum af et n-dimensionelt rum over et begrænset felt og  være et ortogonalt komplement til . Så ifølge en af ​​sætningerne i lineær algebra er dimensionen . Derfor er der r basisvektorer i. Lad grundlaget være i .

Så opfylder enhver vektor følgende system af lineære ligninger :

Eller i matrixform :

hvor er tjekmatricen.

Det reducerede system af lineære ligninger skal betragtes som et kontrolsystem for alle vektorer i det lineære rum, derfor kaldes matrixen en kontrolmatrix.

Formel definition

En lineær kode med længden n og rang k er et lineært underrum C med dimensionen k af vektorrummet , hvor  er et endeligt felt af q elementer. En sådan kode med en parameter q kaldes en q-ær kode (f.eks. hvis q = 5, så er dette en 5-ær kode). Hvis q = 2 eller q = 3, så er koden henholdsvis binær eller ternær .

En lineær (blok) kode  er en kode, således at sættet af dets kodeord danner et -dimensionelt lineært underrum (lad os kalde det ) i et -dimensionelt lineært rum , isomorft med rummet af -bitvektorer .

Dette betyder, at indkodningsoperationen svarer til multiplikationen af ​​den oprindelige -bit-vektor med en ikke-singular matrix , kaldet generatormatrixen .

Lade være  et ortogonalt underrum med hensyn til , Og  være en matrix, der definerer grundlaget for dette underrum. Så for enhver vektor er det sandt:

.

Egenskaber og vigtige teoremer

Minimum afstand og korrigerende kraft

Hamming-afstanden ( Hamming metric ) mellem to kodeorderantallet af forskellige bits i de tilsvarende positioner, det vil sige antallet af "enheder" i vektoren.

Den mindste linjekodeafstand er minimum af alle Hamming-afstande for alle kodeordspar.

Vægten af ​​en vektor   er Hamming-afstanden mellem denne vektor og nulvektoren, med andre ord antallet af ikke-nul-komponenter af vektoren.

Sætning 1:

Minimumsafstanden for en linjekode er lig med minimum af Hamming-vægtene af kodeord, der ikke er nul:

Bevis:

Afstanden mellem to vektorer opfylder ligheden , hvor  er vektorens Hamming-vægt . Fra det faktum, at forskellen mellem to kodeord i en lineær kode også er et kodeord for en lineær kode, følger sætningen:

Den mindste Hamming-afstand er en vigtig egenskab ved en lineær blokkode. Den definerer en anden, ikke mindre vigtig egenskab - korrigerende evne :

, her angiver vinkelparenteserne afrunding "ned".

Korrektionskraften bestemmer, hvad der er det maksimale antal fejl i et kodeord, som koden kan garanteres at rette.

Lad os forklare med et eksempel. Antag, at der er to kodeord A og B, Hamming-afstanden mellem dem er lig med 3. Hvis ord A blev transmitteret, og kanalen introducerede en fejl i en bit, kan den rettes, da selv i dette tilfælde er det modtagne ord tættere på kodeord A end B. Men hvis to-bit fejl blev indført af kanalen, kan dekoderen antage, at ord B blev transmitteret.

Antallet af detekterede fejl er antallet af fejl, ved hvilke dekoderen kan detektere en fejlsituation (og f.eks. starte gentransmission af meddelelsen). Dette nummer er

.

Sætning 2 (uden bevis):

Hvis nogen kolonner i kontrolmatrixen H af en lineær (n, k)-kode er lineært uafhængige, så er den mindste kodeafstand mindst d. Hvis der er d lineært afhængige kolonner, er den mindste kodeafstand nøjagtigt d.

Sætning 3 (uden bevis):

Hvis minimumsafstanden for en lineær (n, k) kode er d, så er alle kolonner i kontrolmatrixen H lineært uafhængige, og der er d lineært afhængige kolonner.

Hamming-koder

Historisk set burde " Hamming-koder " hedde R. Fisher-koder og blev introduceret i 1942 (Fisher RA Theory of confouding in factor to thr theory). Hamming-koder  er de enkleste lineære koder med en minimumsafstand på 3, det vil sige i stand til at rette en fejl. Hamming-koden kan repræsenteres på en sådan måde, at syndromet

, hvor  er den accepterede vektor,

vil være lig med det positionsnummer, hvor fejlen opstod. Denne egenskab gør afkodning meget let.

Reed-Muller kode

Reed-Muller-koden  er en lineær binær blokkode. Med en bestemt konstruktionsmetode kan det være systematisk. Generelt er Reed-Muller-koden ikke cyklisk. Reed-Muller-koderne er givet af følgende parametre: for alle værdier afog, kaldet koderækkefølgen, mindre end:

kodeords længde informationsdelens længde test del længde minimum kodeafstand

Reed-Muller-koden bestemmes ved hjælp af en generatormatrix bestående af basisvektorer, som er bygget efter reglen:

lad være  en vektor, hvis alle komponenter er lig med 1; lad  være rækkerne i en matrix, hvis kolonner alle er binære længdesæt

Reed-Muller-koden af ​​th orden indeholder vektorer og alle komponentprodukter eller et mindre antal af disse vektorer som basis.

Generel metode til indkodning af linjekoder

En lineær kode af længden n med k informationssymboler er et k-dimensionelt lineært underrum, så hvert kodeord er en lineær kombination af underrummets basisvektorer :

.

Eller ved at bruge generatormatrixen:

, hvor

Dette forhold er den kodningsregel, ifølge hvilken informationsordet er afbildet til koden

Generel metode til at opdage fejl i lineær kode

Enhver kode (inklusive ikke-lineær) kan afkodes ved hjælp af en almindelig tabel, hvor hver værdi af det modtagne ord svarer til det mest sandsynlige overførte ord . Denne metode kræver dog allerede brug af enorme tabeller for kodeord af relativt lille længde.

For lineære koder kan denne metode forenkles betydeligt. I dette tilfælde beregnes syndromet for hver modtaget vektor . Siden , hvor  er kodeordet og  er fejlvektoren, så . Derefter bestemmes en fejlvektor ved hjælp af syndromtabellen, ved hjælp af hvilken det transmitterede kodeord bestemmes. I dette tilfælde er bordet meget mindre end ved brug af den tidligere metode.

Lineære cykliske koder

På trods af at fejlkorrektion i lineære koder allerede er meget nemmere end korrektion i de fleste ikke-lineære koder, er denne proces for de fleste koder stadig ret kompliceret. Cykliske koder har udover enklere afkodning andre vigtige egenskaber.

En cyklisk kode er en lineær kode med følgende egenskab: hvis er et kodeord, så er dens cykliske permutation også et kodeord.

Ordene i en cyklisk kode er bekvemt repræsenteret som polynomier. For eksempel er et kodeord repræsenteret som et polynomium . I dette tilfælde er det cykliske skift af kodeordet ækvivalent med at multiplicere polynomiet med modulo .

I fremtiden, medmindre andet er angivet, vil vi antage, at den cykliske kode er binær , det vil sige ... kan antage værdierne 0 eller 1 .

Generering af polynomium

Det kan vises, at alle kodeord i en bestemt cyklisk kode er multipla af et bestemt genererende polynomium . Generatorpolynomiet er en divisor .

Ved hjælp af et genererende polynomium udføres kodning af en cyklisk kode. I særdeleshed:

CRC-koder

CRC - koder (cyklisk redundanskontrol - cyklisk redundant kontrol) er systematiske koder designet til ikke at rette fejl, men til at opdage dem. De bruger den systematiske kodningsmetode, der er skitseret ovenfor: "kontrolsummen" beregnes ved at dividere med . Da der ikke kræves fejlkorrektion, kan transmissionsvalidering udføres på samme måde.

Således angiver formen af ​​polynomiet g(x) en specifik CRC-kode. Eksempler på de mest populære polynomier:

kodenavn grad polynomium
CRC-12 12
CRC-16 16
CRC- CCITT 16
CRC-32 32

BCH-koder

Bose-Chowdhury-Hockwingham (BCH) koder er en underklasse af binære cykliske koder. Deres kendetegn er evnen til at konstruere en BCH-kode med en minimumsafstand, der ikke er mindre end en given. Dette er vigtigt, fordi det generelt er en meget vanskelig opgave at bestemme minimumskodeafstanden.

Matematisk bruger konstruktionen af ​​BCH-koder og deres afkodning nedbrydningen af ​​det genererende polynomium til faktorer i Galois-feltet .

Reed-Solomon-koder

Reed-Solomon- koder (RS-koder) er faktisk ikke- binære BCH-koder, det vil sige, at elementerne i kodevektoren ikke er bits, men grupper af bit. Reed-Solomon-koder er meget almindelige og arbejder med bytes ( oktetter ).

Fordele og ulemper ved linjekoder

+ På grund af linearitet, for at huske eller opregne alle kodeord, er det nok at lagre en væsentlig mindre del af dem i koderens eller dekoderens hukommelse, nemlig kun de ord, der danner grundlaget for det tilsvarende lineære rum. Dette forenkler i høj grad implementeringen af ​​kodnings- og afkodningsenheder og gør lineære koder meget attraktive set ud fra praktiske applikationer.

- Selvom lineære koder som regel klarer sjældne, men store fejludbrud , er deres effektivitet med hyppige men små fejl (for eksempel i en kanal med AWGN ) mindre høj.

Præstationsvurdering

Effektiviteten af ​​koder bestemmes af antallet af fejl, som den kan rette, mængden af ​​redundant information, der skal tilføjes, og kompleksiteten af ​​implementeringen af ​​kodning og afkodning (både hardware og computersoftware ).

Hamming bundne og perfekte koder

Lad der være en binær blokkode med korrigerende evne . Følgende ulighed gælder så (kaldet Hamming-grænsen ):

.

Koder, der opfylder denne lighedsgrænse, siges at være perfekte . Perfekte koder omfatter for eksempel Hamming-koder. Koder med stor korrigerende kraft, der ofte bruges i praksis (såsom Reed-Solomon-koder) er ikke perfekte.

Energigevinst

Ved transmission af information over en kommunikationskanal afhænger fejlsandsynligheden af ​​signal-støjforholdet ved demodulatorindgangen, så ved et konstant støjniveau er sendereffekten af ​​afgørende betydning. I satellit- og mobilsystemer såvel som andre former for kommunikation er spørgsmålet om energibesparelser akut. Derudover tillader tekniske begrænsninger i visse kommunikationssystemer (for eksempel telefon) ikke en ubegrænset stigning i signalstyrken.

Da fejlkorrigerende kodning giver mulighed for fejlkorrektion, kan dens anvendelse reducere sendereffekten og forlade informationshastigheden uændret. Energiforstærkningen er defineret som forskellen mellem s/n-forholdene i nærvær og fravær af kodning.

Ansøgning

Linjekoder gælder:

Litteratur

Se også