Bowes-Chowdhury-Hockwingham-koden

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 25. februar 2021; checks kræver 3 redigeringer .

Bowes-Chowdhury-Hokvingham-koder (BCH-koder)  - i kodningsteori er dette en bred klasse af cykliske koder , der bruges til at beskytte information mod fejl (se Fejldetektering og -korrektion ). Det adskiller sig ved muligheden for at bygge en kode med forudbestemte korrigerende egenskaber, nemlig den mindste kodeafstand. Et særligt tilfælde af BCH-koder er Reed-Solomon-koden .

Formel beskrivelse

En BCH-kode er en cyklisk kode , der kan gives af et generatorpolynomium . For at finde den i tilfælde af en BCH-kode er det nødvendigt på forhånd at bestemme længden af ​​koden (den kan ikke være vilkårlig) og den nødvendige minimumsafstand . Du kan finde et genererende polynomium på følgende måde.

Lade være  et primitivt element i feltet (dvs. ), lad , være et element i ordensfeltet , . Så er et normaliseret polynomium af minimumsgrad over et felt, hvis rødder er successive potenser af et element for et eller andet heltal (inklusive 0 og 1) et genererende polynomium af en BCH-kode over et felt med længde og minimumsafstand .

Lad os forklare, hvorfor den resulterende kode vil have præcis sådanne egenskaber (kodelængde , minimumafstand ). Faktisk, som vist af Sagalovich [1] , er længden af ​​BCH-koden lig med elementrækkefølgen if , og lig med elementrækkefølgen if . Da vi ikke er interesserede i sagen (en sådan kode kan ikke rette fejl, kun opdage dem), vil længden af ​​koden være lig med rækkefølgen af ​​elementet , det vil sige lig med . Minimumsafstanden kan være større, end når rødderne af elementernes minimale funktioner [2] er de elementer, der udvider rækkefølgen, det vil sige elementerne .

Antallet af kontrolsymboler er lig med graden , antallet af informationssymboler , værdien kaldes den konstruktive afstand af BCH-koden. Hvis , så kaldes koden primitiv , ellers ikke- primitiv .

Ligesom for den cykliske kode kan kodepolynomiet opnås fra informationspolynomiet af grad ved at multiplicere og :

Bygning

For at finde det genererende polynomium er det nødvendigt at udføre flere trin [3] :

Kodeeksempler

Primitiv binær (15, 7, 5) kode

Lad , den nødvendige kodelængde og minimumsafstanden . Tag  — et primitivt element i feltet , og  — fire på hinanden følgende potenser af elementet . De tilhører to cyclotomic klasser over det felt , som de irreducible polynomier og svarer til . Derefter polynomiet

har elementer som rødder og er et genererende polynomium af BCH-koden med parametre .

Hexadecimal (15, 11, 5) kode (Reed-Solomon-kode)

Lad , og  vær et primitivt element af . Derefter

Hvert element i feltet kan afbildes til 4 bit , så et kodeord svarer til 60 = 15 × 4 bit, så et sæt på 44 bit er afbildet til et sæt på 60 bit. Vi kan sige, at en sådan kode fungerer med småting af information.

Kodning

Til kodning med BCH-koder anvendes de samme metoder som til kodning med cykliske koder.

Afkodningsmetoder

BCH-koder er cykliske koder, så alle metoder, der bruges til at afkode cykliske koder, gælder for dem. Der er dog meget bedre algoritmer udviklet specifikt til BCH-koder [4] .

Hovedideen ved afkodning af BCH-koder er at bruge elementerne i det endelige felt til at nummerere kodeordets positioner (eller tilsvarende i rækkefølgen af ​​koefficienterne for det tilknyttede polynomium). Nedenfor er en sådan opregning for vektoren svarende til polynomiet .

værdier
positionssøgere

Lad det modtagne ord være forbundet med polynomiet , hvor fejlpolynomiet er defineret som: , hvor  er antallet af fejl i det modtagne ord. Sæt og kaldes henholdsvis fejlværdier og fejlfindere , hvor , og .

Syndromer er defineret som værdierne af det modtagne polynomium ved nullerne i det genererende kodepolynomium:

hvor .

For at finde sættet af fejlfindere introducerer vi fejlfinderpolynomiet

hvis rødder er lig med de reciproke fejlfindere. Så er følgende relation gyldig mellem koefficienterne for fejlfindingspolynomiet og syndromer [5] :

Følgende metoder er kendte til at løse dette ligningssystem med hensyn til koefficienterne for fejlfindingspolynomiet ( nøglesystem af ligninger ).

Berlekamp-Massey algoritme

Denne algoritme ses bedst som en iterativ proces til at konstruere et minimum feedback (shift) register, der genererer en kendt sekvens af syndromer . Dets egentlige mål er at konstruere et polynomium af den mindste grad, der opfylder ligningen

Løsningen af ​​denne ligning svarer til betingelsen

Den iterative proces med at konstruere et sådant polynomium er Berlekamp-Massey-algoritmen .

Euklidisk algoritme

Denne metode er baseret på den velkendte Euklids algoritme til at finde den største fælles divisor af to tal (gcd), kun i dette tilfælde leder vi efter gcd ikke af to tal, men af ​​to polynomier. Lad os betegne polynomiet af fejlværdier som , hvor det syndromiske polynomium er lig med . Det følger af ligningssystemet, at . Problemet går i det væsentlige ned til at bestemme, hvilken der opfylder den sidste ligning, og samtidig er graden ikke højere . Faktisk vil en sådan løsning give den udvidede euklidiske algoritme anvendt på polynomier og , hvor . Hvis den udvidede euklidiske algoritme i det th trin producerer en løsning sådan, at , så , og . I dette tilfælde deltager det fundne polynomium ikke yderligere i afkodningen (det søges kun som et hjælpe). På denne måde vil fejlfindingspolynomiet blive fundet .

Direkte løsning (Petersson-Gorenstein-Zierler-algoritme, PGC)

Lad BCH-koden over længdefeltet og med en konstruktiv afstand være givet af et genererende polynomium , som blandt sine rødder har elementer  - et heltal (f.eks. 0 eller 1). Så har hvert kodeord egenskaben, at . Det modtagne ord kan skrives som , hvor  er fejlpolynomiet. Lad fejl opstå ved positioner (  er det maksimale antal korrigerbare fejl), så , og  er størrelsen af ​​fejl.

Du kan komponere syndromet af det accepterede ord :

Opgaven er at finde antallet af fejl , deres positioner og deres betydning for kendte syndromer .

Antag til at begynde med, at nøjagtigt svarer til . Vi skriver syndromerne i form af et system af ikke-lineære ligninger i eksplicit form:

Angiv med locatoren af ​​den -th fejl, og med  - størrelsen af ​​fejlen, . I dette tilfælde er alle forskellige, da rækkefølgen af ​​elementet er , og derfor, når kendt , kan defineres som .

Lad os sammensætte et polynomium af fejlfindere :

Rødderne af dette polynomium er de elementer, der er omvendt til fejlfinderne. Gang begge sider af dette polynomium med . Den resulterende lighed vil være gyldig for :

Hvis vi erstatter her , så får vi en lighed, der gælder for alle og enhver :

Således kan du for hver , skrive din egen ligestilling. Hvis de summeres , får vi en lighed, der er gyldig for hver :

Da (det vil sige, det ændrer sig inden for de samme grænser som før), transformeres ligningssystemet for syndromer til et system af lineære ligninger :

eller i matrixform,

hvor

Hvis antallet af fejl faktisk er lig med , så er dette system løseligt, og man kan finde værdierne af koefficienterne . Hvis tallet er , så vil determinanten af ​​matricen være lig med . Dette er et tegn på, at antallet af fejl er mindre . Derfor er det nødvendigt at sammensætte et system, der antager antallet af fejl lig med , beregne determinanten for den nye matrix osv. indtil vi fastslår det sande antal fejl.

Søg efter Chen

Efter at nøglesystemet af ligninger er løst, opnås koefficienterne for fejlfindingspolynomiet. Dens rødder (elementerne omvendt til fejlfinderne) kan findes ved blot at gentage alle elementerne i feltet . For dem skal du finde elementer, der er omvendt til multiplikation - disse er fejlfindere . Denne proces er nem at implementere i hardware.

Forneys algoritme

Ved hjælp af lokalisatorerne kan du finde fejlpositionerne ( ) og fejlværdierne fra systemet for syndromer ved at acceptere . Afkodning afsluttet.

Se også

Noter

  1. Sagalovich, 2007 , s. 175-176.
  2. Sagalovich, 2007 , s. 176.
  3. Sagalovich, 2007 , s. 168.
  4. Kunsten at fejlkorrigere kodning Arkiveret 1. april 2013 på Wayback Machine , s. 91.
  5. Sagalovich, 2007 , s. 200.

Litteratur