I kodningsteorien danner BCH-koderne eller Bose-Chaudhuri-Hocquenghem-koderne en klasse af cykliske fejlkorrigerende koder, der er konstrueret ved hjælp af polynom over et begrænset felt (også kaldet Galois-felt ). BCH-koder blev opfundet i 1959 af den franske matematiker Alexis Hocquenghem og uafhængigt i 1960 af Raj Bose og DK Ray-Chaudhuri . Navnet Bose – Chaudhuri – Hocquenghem (og akronymet BCH ) stammer fra initialerne til opfindernes efternavne (fejlagtigt i tilfældet Ray-Chaudhuri).
En af nøglefunktionerne i BCH -koder er, at der under kodedesign er en præcis kontrol over antallet af symbolfejl, der kan korrigeres af koden. Især er det muligt at designe binære BCH -koder, der kan korrigere flere bitfejl. En anden fordel ved BCH -koder er den lethed, hvormed de kan afkodes, nemlig via en algebraisk metode kendt som syndromdekodning . Dette forenkler designet af dekoderen til disse koder ved hjælp af lille elektronisk hardware med lav effekt.
BCH-koder bruges i applikationer såsom satellitkommunikation, cd- afspillere, dvd'er , diskdrev , solid-state-drev , kvantebestandig kryptografi og todimensionale stregkoder .
Definition og illustration
Primitive BCH-koder med smal sans
I betragtning af et primtal q og primær kraft q m med positive heltal m og d sådan, at d ≤ q m -1 , en primitiv BCH-kode med snæver sans over det endelige felt (eller Galois-felt) GF ( q ) med kodelængde n = q m - 1 og afstanden mindst d konstrueres ved følgende metode.
Lad α være et primitivt element i GF ( q m ) . For ethvert positivt heltal i , lad m i ( x ) være det minimale polynom med koefficienter i GF ( q ) af α i . Den generatorpolynomium af BCH-koden defineres som den mindste fælles multiplum g ( x ) = lcm ( m 1 ( x ), ..., m d - 1 ( x )) . Det kan ses, at g ( x ) er et polynom med koefficienter i GF ( q ) og deler x n - 1 . Derfor er den polynomiske kode defineret af g ( x ) en cyklisk kode.
Eksempel
Lad q = 2 og m = 4 (derfor n = 15 ). Vi vil overveje forskellige værdier af d for GF (16) = GF (2 4 ) baseret på det reducerende polynom z 4 + z + 1 ved hjælp af primitivt element α ( z ) = z . Der er fjorten minimumspolynomer m i ( x ) med tilfredsstillende
koefficienter i GF (2)

De minimale polynomer er

BCH -koden med har generatorpolynom


Den har minimal Hamming -afstand mindst 3 og retter op til en fejl. Da generatorpolynomet er af grad 4, har denne kode 11 databit og 4 checksum -bits.
BCH -koden med har generatorpolynom


Den har minimal Hamming -afstand mindst 5 og retter op til to fejl. Da generatorpolynomet er af grad 8, har denne kode 7 databit og 8 checksum -bits.
BCH -koden med har generatorpolynom


Den har minimal Hamming -afstand mindst 7 og retter op til tre fejl. Da generatorpolynomet har en grad 10, har denne kode 5 databit og 10 checksum -bits. (Denne særlige generatorpolynom har en applikation i den virkelige verden i QR-kodens formatmønstre .)
BCH -koden med og højere har generatorpolynom


Denne kode har minimal Hamming -afstand 15 og retter 7 fejl. Den har 1 databit og 14 checksum -bits. Faktisk har denne kode kun to kodeord: 000000000000000 og 111111111111111.
Generelle BCH -koder
Generelle BCH-koder adskiller sig fra primitive smalle sansede BCH-koder i to henseender.
For det første kan kravet om at være et primitivt element i lempes. Ved at slappe dette krav, koden længde ændrer sig fra at den rækkefølge af elementet



For det andet kan de på hinanden følgende rødder af generatorpolynomet løbe fra i stedet for
Definition. Fix et begrænset felt, hvor der er en primær effekt. Vælg positive heltal sådan og er multiplikative rækkefølgen af modulo





Som før, så lad være en primitiv th roden af enhed i , og lad være det minimale polynomium løbet af for alle
Generatoren polynomium af BCH-koden er defineret som den mindste fælles multiplum





Bemærk: hvis som i den forenklede definition, så er 1, og rækkefølgen af modulo er
Derfor er den forenklede definition faktisk et specielt tilfælde af den generelle.





Særlige tilfælde
- En BCH-kode med kaldes en smalfølsom BCH-kode .

- En BCH -kode med kaldes primitiv .

Generatorpolynomet for en BCH -kode har koefficienter fra
Generelt kaldes en cyklisk kode med som generatorpolynomet en BCH -kode over
BCH -koden over og generatorpolynom med successive beføjelser som rødder er en type Reed -Solomon -kode, hvor dekoder (syndromer) alfabet er det samme som kanal (data og generator polynom) alfabet, alle elementer af . Den anden type Reed Solomon -kode er en original visning af Reed Solomon -kode, som ikke er en BCH -kode.









Ejendomme
Generatorpolynomet for en BCH -kode har højst grad . Desuden, hvis og , har generatorpolynomet højst grad .




En BCH -kode har mindst Hamming -afstand mindst .

|
Bevis
|
|
Antag, at det er et kodeord med færre end ikke-nul termer. Derefter
 

Recall, der er rødder til derfor af . Dette indebærer, at tilfredsstille følgende ligninger for hver :
    

I matrixform har vi

Determinanten for denne matrix er lig

Matricen ses at være en Vandermonde -matrix , og dens determinant er


som ikke er nul. Derfor følger det derfor
|
En BCH -kode er cyklisk.
|
Bevis
|
|
En polynomisk længdekode er cyklisk, hvis og kun hvis dens generator polynom deler sig Siden er det minimale polynom med rødder, er det tilstrækkeligt at kontrollere, at hver af dem er en rod til Dette følger umiddelbart af det faktum, at det per definition er en rod til enhed .
       
|
Indkodning
Fordi ethvert polynom, der er et multiplum af generatorpolynomet, er et gyldigt BCH -kodeord, er BCH -kodning blot processen med at finde et polynom, der har generatoren som en faktor.
Selve BCH -koden er ikke foreskrivende for betydningen af koefficienterne i polynomet; konceptuelt er en BCH -afkodingsalgoritme eneste bekymring at finde det gyldige kodeord med den minimale Hamming -afstand til det modtagne kodeord. Derfor kan BCH -koden implementeres enten som en systematisk kode eller ej, afhængigt af hvordan implementøren vælger at integrere meddelelsen i det kodede polynom.
Ikke-systematisk kodning: Beskeden som faktor
Den mest enkle måde at finde et polynom, der er et multiplum af generatoren, er at beregne produktet af et vilkårligt polynom og generatoren. I dette tilfælde kan det vilkårlige polynom vælges ved hjælp af meddelelsens symboler som koefficienter.

Som et eksempel kan du overveje generatorpolynomet , valgt til brug i den (31, 21) binære BCH -kode, der bruges af POCSAG og andre. For at kode 21-bit beskeden {101101110111101111101} repræsenterer vi den først som et polynom over :



Beregn derefter (også over ):


Således er det transmitterede kodeord {1100111010010111101011101110101}.
Modtageren kan bruge disse bits som koefficienter i og, efter fejlkorrektion for at sikre et gyldigt kodeord, kan genberegne
Systematisk kodning: Beskeden som et præfiks
En systematisk kode er en, hvor meddelelsen vises ordret et sted i kodeordet. Derfor involverer systematisk BCH-kodning først at integrere meddelelsespolynomet i kodeordpolynomet og derefter justere koefficienterne for de resterende (ikke-besked) vilkår for at sikre, at det kan deles med .


Denne kodningsmetode udnytter det faktum, at det at trække resten fra et udbytte resulterer i et multiplum af divisoren. Derfor, hvis vi tager vores budskabspolynom som før og multiplicerer det med (for at "flytte" budskabet væk fra resten), kan vi derefter bruge euklidisk opdeling af polynomier til at give:



Her ser vi, at det er et gyldigt kodeord. Som det altid er grad mindre end (hvilket er graden af ), kan vi roligt trække det fra uden at ændre nogen af beskedkoefficienterne, derfor har vi vores som







Over (dvs. med binære BCH-koder) kan denne proces ikke skelnes fra at tilføje en cyklisk redundanskontrol , og hvis en systematisk binær BCH-kode kun bruges til fejldetekteringsformål, ser vi, at BCH-koder kun er en generalisering af cykliske matematik redundans kontrol .

Fordelen ved den systematiske kodning er, at modtageren kan gendanne den originale meddelelse ved at kassere alt efter de første koefficienter efter at have udført fejlkorrektion.

Afkodning
Der er mange algoritmer til afkodning af BCH -koder. De mest almindelige følger denne generelle oversigt:
- Beregn syndromerne s j for den modtagne vektor
- Bestem antallet af fejl t og fejllokatorens polynom Λ (x) fra syndromerne
- Beregn rødderne til fejlplaceringspolynomet for at finde fejlplaceringerne X i
- Beregn fejlværdierne Y i på disse fejlsteder
- Ret fejlene
Under nogle af disse trin kan dekoderingsalgoritmen bestemme, at den modtagne vektor har for mange fejl og ikke kan rettes. For eksempel, hvis en passende værdi af t ikke findes, ville korrektionen mislykkes. I en afkortet (ikke primitiv) kode kan en fejlplacering være uden for området. Hvis den modtagne vektor har flere fejl, end koden kan rette, kan dekoderen ubevidst frembringe en tilsyneladende gyldig meddelelse, der ikke er den, der blev sendt.
Beregn syndromerne
Den modtagne vektor er summen af det korrekte kodeord og en ukendt fejlvektor Syndromværdierne dannes ved at betragte det som et polynom og evaluere det på Således er syndromerne






for at
Da nuller heraf er et multiplum, isolerer undersøgelse af syndromværdierne således fejlvektoren, så man kan begynde at løse for det.




Hvis der ikke er nogen fejl, for alle Hvis syndromerne alle er nul, er afkodningen udført.


Beregn fejlplaceringspolynomet
Hvis der er nul -syndromer, er der fejl. Dekoderen skal finde ud af, hvor mange fejl og placeringen af disse fejl.
Hvis der er en enkelt fejl, skal du skrive dette som hvor er placeringen af fejlen og dens størrelse. Så er de to første syndromer




så sammen giver de os mulighed for at beregne og give nogle oplysninger om (fuldstændig bestemmelse af det i tilfælde af Reed -Solomon -koder).


Hvis der er to eller flere fejl,

Det er ikke umiddelbart indlysende, hvordan man begynder at løse de resulterende syndromer for de ukendte og
Det første trin er at finde, kompatibelt med computersyndromer og med minimalt muligt lokaliseringspolynom:


Tre populære algoritmer til denne opgave er:
- Peterson – Gorenstein – Zierler algoritme
- Berlekamp – Massey algoritme
- Sugiyama euklidisk algoritme
Peterson – Gorenstein – Zierler algoritme
Petersons algoritme er trin 2 i den generaliserede BCH -afkodningsprocedure. Petersons algoritme bruges til at beregne fejllokatorens polynomkoefficienter for et polynom


Nu er proceduren for Peterson – Gorenstein – Zierler -algoritmen. Forvent, at vi har mindst 2 t syndromer s c ,…, s c +2 t −1 . Lad v = t .
- Start med at generere matricen med elementer, der er syndromværdier


- Generer en vektor med elementer


- Lad betegne de ukendte polynomiske koefficienter, som er givet ved


- Form matrixligningen

- Hvis matrixens determinant er nul, kan vi faktisk finde en invers af denne matrix og løse værdierne for ukendte værdier.


- Hvis så følg

if
then
declare an empty error locator polynomial
stop Peterson procedure.
end
set
fortsætte fra begyndelsen af Petersons afkodning ved at gøre mindre
- Når du har værdierne for , har du fejlfinderpolynomet.

- Stop Peterson -proceduren.
Faktorfejl lokaliseringspolynom
Nu hvor du har polynomet, kan dets rødder findes i formen ved brutal kraft, for eksempel ved hjælp af Chien -søge -algoritmen. Det primitive elements eksponentielle kræfter vil give de positioner, hvor der opstår fejl i det modtagne ord; deraf navnet 'fejlfinder' polynom.



Nullerne på Λ ( x ) er α - i 1 ,…, α - i v .
Beregn fejlværdier
Når fejlplaceringerne er kendt, er det næste trin at bestemme fejlværdierne på disse steder. Fejlværdierne bruges derefter til at rette de modtagne værdier på disse steder for at gendanne det originale kodeord.
I tilfælde af binær BCH (med alle læsbare tegn) er dette trivielt; bare vend bitene for det modtagne ord på disse positioner, og vi har det korrigerede kodeord. I det mere generelle tilfælde kan fejlvægtene bestemmes ved at løse det lineære system


Forney algoritme
Der er imidlertid en mere effektiv metode kendt som Forney -algoritmen .
Lade


Og fejlvurderingspolynomet

Endelig:

hvor

End hvis syndromer kunne forklares med et fejlord, der kun kunne være nul på positioner , er fejlværdierne


For BCH-koder med smal sans, c = 1, så udtrykket forenkles til:

Forklaring af Forney -algoritmeberegning
Det er baseret på Lagrange -interpolation og teknikker til generering af funktioner .
Overvej og for enkelthedens skyld antag for og for derefter







Vi vil beregne ubekendte, og vi kunne forenkle konteksten ved at fjerne vilkårene. Dette fører til fejlevalueringspolynomet



Takket være det har vi


Takket være (Lagrange -interpolationstricket) degenereres summen til kun én summen for

For at få det skal vi bare slippe af med produktet. Vi kunne beregne produktet direkte fra allerede beregnede rødder af, men vi kunne bruge enklere form.



Som formel afledt

vi får igen kun en summen ind

Så endelig

Denne formel er fordelagtig, når man beregner det formelle derivat af form


hvilket giver:

hvor

Afkodning baseret på udvidet euklidisk algoritme
En alternativ proces med at finde både polynomet Λ og fejllokatorpolynomet er baseret på Yasuo Sugiyamas tilpasning af den udvidede euklidiske algoritme . Korrektion af ulæselige tegn kan også let indarbejdes i algoritmen.
Lad være positioner med ulæselige tegn. Man opretter polynom lokalisering af disse positioner
Indstil værdier på ulæselige positioner til 0 og beregne syndromerne.


Som vi allerede har defineret for Forney -formlen lad
Lad os køre en udvidet euklidisk algoritme til lokalisering af den mindst fælles divisor af polynomier og
Målet er ikke at finde den mindst fælles divisor, men højst et polynom og polynomer således, at
Lav grad af garantier, der ville tilfredsstille udvidede (ved ) definerende betingelser til








At definere og bruge på stedet for i Fourney -formlen vil give os fejlværdier.



Den største fordel ved algoritmen er, at den i mellemtiden beregner nødvendige i Forney -formlen.

Forklaring af afkodningsprocessen
Målet er at finde et kodeord, der adskiller sig fra det modtagne ord minimalt som muligt på læsbare positioner. Når vi udtrykker det modtagne ord som en sum af nærmeste kodeord og fejlord, forsøger vi at finde fejlord med et minimalt antal ikke-nuller på læsbare positioner. Syndrom begrænser fejl ord efter tilstand


Vi kunne skrive disse betingelser separat eller vi kunne skabe polynom

og sammenligne koefficienter nær beføjelser til

Antag, at der er et ulæseligt bogstav om position, vi kunne erstatte sæt syndromer med sæt af syndromer defineret ved ligning Antag for et fejlord, at alle begrænsninger ved det originale sæt syndromer holder, end






Nyt sæt syndromer begrænser fejlvektoren

på samme måde begrænsede det originale sæt syndromer fejlvektoren Bortset fra koordinaten, hvor vi har en, er nul, hvis For målet om at lokalisere fejlpositioner kunne vi ændre sættet med syndromer på lignende måde for at afspejle alle ulæselige tegn. Dette forkorter sæt af syndromer med




I polynomformulering fører udskiftning af syndromer sat med syndromesæt til



Derfor,

Efter udskiftning af med ville man kræve ligning for koefficienter nær kræfter

Man kunne overveje at kigge efter fejlpositioner fra det synspunkt at eliminere indflydelse fra givne positioner på samme måde som for ulæselige tegn. Hvis vi fandt positioner, så eliminering af deres indflydelse fører til at få et sæt syndromer, der består af alle nuller, end der findes fejlvektor med fejl kun på disse koordinater. Hvis betegner det polynom, der eliminerer påvirkningen af disse koordinater, opnår vi



I den euklidiske algoritme forsøger vi højst at rette fejl (på læsbare positioner), fordi med større fejltælling kan der være flere kodeord i samme afstand fra det modtagne ord. Derfor, for vi leder efter, skal ligningen holde for koefficienter nær kræfter, der starter fra



I Forney -formlen kan den ganges med en skalar, der giver det samme resultat.

Det kan ske, at den euklidiske algoritme finder en grad højere end at have et antal forskellige rødder svarende til dens grad, hvor Fourney -formlen ville være i stand til at rette fejl i alle dens rødder, men alligevel kunne det være risikabelt at rette så mange fejl (især uden andre begrænsninger på modtaget ord). Normalt efter at have fået en højere grad, beslutter vi os for ikke at rette fejlene. Korrektion kan mislykkes, hvis der er rødder med større multiplicitet, eller antallet af rødder er mindre end dets grad. Fejl kan også opdages ved at Forney -formel returnerer fejl uden for det transmitterede alfabet.




Ret fejlene
Brug fejlværdierne og fejlplaceringen til at rette fejlene og danne en korrigeret kodevektor ved at trække fejlværdier fra ved fejlplaceringer.
Afkodningseksempler
Afkodning af binær kode uden ulæselige tegn
Overvej en BCH -kode i GF (2 4 ) med og . (Dette bruges i QR -koder .) Lad meddelelsen, der skal transmitteres, være [1 1 0 1 1], eller i polynomnotation,
"checksum" -symbolerne beregnes ved at dividere med og tage resten, hvilket resulterer i eller [1 0 0 0 0 1 0 1 0 0]. Disse er vedhæftet meddelelsen, så det overførte kodeord er [1 1 0 1 1 1 0 0 0 0 1 0 1 0 0].






Forestil dig nu, at der er to bitfejl i transmissionen, så det modtagne kodeord er [1 0 0 1 1 1 0 0 0 1 1 0 1 0 0]. I polynom notation:

For at rette fejlene skal du først beregne syndromerne. Når vi tager og derefter
anvender vi Peterson-proceduren ved at reducere følgende forstørrede matrix i række.



![{\ displaystyle \ left [S_ {3 \ times 3} | C_ {3 \ times 1} \ right] = {\ begin {bmatrix} s_ {1} & s_ {2} & s_ {3} & s_ {4} \\ s_ {2} & s_ {3} & s_ {4} & s_ {5} \\ s_ {3} & s_ {4} & s_ {5} & s_ {6} \ end {bmatrix}} = {\ begin {bmatrix} 1011 & 1001 & 1011 & 1101 \\ 1001 & 1011 & 1101 & 0001 \\ 1011 & 1101 & 0001 & 1001 \ end {bmatrix}} \ Højre pil {\ begin {bmatrix} 0001 & 0000 & 1000 & 0111 \\ 0000 & 0001 & 1011 & 0001 \\ 0000 & 0000 & 0000 & 0000 \ end {bmatrix}}}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/01ae26421a97007762e7db564652697943f6c6dd)
På grund af nulrækken er S 3 × 3 ental, hvilket ikke er nogen overraskelse, da kun to fejl blev introduceret i kodeordet. Matrixens øverste venstre hjørne er imidlertid identisk med [ S 2 × 2 | C 2 × 1 ] , som giver anledning til løsningen
Det resulterende fejllokaliseringspolynom er som har nuller på og
Eksponenterne svarer til fejlplaceringerne. Det er ikke nødvendigt at beregne fejlværdierne i dette eksempel, da den eneste mulige værdi er 1.





Afkodning med ulæselige tegn
Antag det samme scenario, men det modtagne ord har to ulæselige tegn [1 0 0? 11 1? 0 0 1 1 0 1 0 0]. Vi erstatter de ulæselige tegn med nuller, mens vi opretter polynomet, der afspejler deres positioner Vi beregner syndromerne og (Ved hjælp af lognotation, der er uafhængig af GF (2 4 ) isomorfier. Til beregningskontrol kan vi bruge den samme repræsentation til tilføjelse som blev brugt i tidligere Hexadecimal beskrivelse af beføjelserne er i rækkefølge 1,2,4,8,3,6, C, B, 5, A, 7, E, F, D, 9 med tilføjelsen baseret på bitvis xor.)




Lad os gøre syndrom polynomt

beregne

Kør den udvidede euklidiske algoritme:
![{\ displaystyle {\ begin {align} & {\ begin {pmatrix} S (x) \ Gamma (x) \\ x^{6} \ end {pmatrix}} \\ [6pt] = {} & {\ begin {pmatrix} \ alpha ^{-7}+\ alpha ^{4} x+\ alpha ^{-1} x ^{2}+\ alpha ^{6} x ^{3}+\ alpha ^{-1} x^{4}+\ alpha^{5} x^{5}+\ alpha^{7} x^{6}+\ alpha^{-3} x^{7} \\ x^{6} \ slut {pmatrix}} \\ [6pt] = {} & {\ begin {pmatrix} \ alpha ^{7}+\ alpha ^{-3} x & 1 \\ 1 & 0 \ end {pmatrix}} {\ begin {pmatrix} x ^{6} \\\ alpha ^{-7}+\ alpha ^{4} x+\ alpha ^{-1} x ^{2}+\ alpha ^{6} x ^{3}+\ alpha ^ {-1} x^{4}+\ alpha^{5} x^{5} +2 \ alpha^{7} x^{6} +2 \ alpha^{-3} x^{7} \ end {pmatrix}} \\ [6pt] = {} & {\ begin {pmatrix} \ alpha ^{7}+\ alpha ^{-3} x & 1 \\ 1 & 0 \ end {pmatrix}} {\ begin {pmatrix} \ alpha ^{4}+\ alpha ^{-5} x & 1 \\ 1 & 0 \ end {pmatrix}} \\ & \ qquad {\ begin {pmatrix} \ alpha ^{-7}+\ alpha ^{4} x+\ alpha ^{-1} x ^{2}+\ alpha ^{6} x ^{3}+\ alpha ^{-1} x ^{4}+\ alpha ^{5} x ^{5} \\ \ alpha ^{-3}+\ venstre (\ alpha ^{-7}+\ alpha ^{3} \ højre) x+\ venstre (\ alpha ^{3}+\ alpha ^{-1} \ højre) x ^{2}+\ venstre (\ alpha ^{-5}+\ alpha ^{-6} \ højre) x ^{3}+\ venstre (\ alpha ^{3}+\ alpha ^{1} \ højre ) x^{4} +2 \ alpha^{-6} x^{5}+2x^{6} \ end {pmatrix}} \\ [6pt] = {} & {\ begin { pmatrix} \ venstre (1+ \ alpha ^{-4} \ højre)+\ venstre (\ alpha ^{1}+\ alpha ^{2} \ højre) x+\ alpha ^{7} x ^{2} & \ alpha ^{7}+\ alpha ^{-3} x \\\ alpha ^{4}+\ alpha ^{-5} x & 1 \ end {pmatrix}} {\ begin {pmatrix} \ alpha ^{-7 }+\ alpha ^{4} x+\ alpha ^{-1} x ^{2}+\ alpha ^{6} x ^{3}+\ alpha ^{-1} x ^{4}+\ alpha ^ {5} x ^{5} \\\ alpha ^{-3}+\ alpha ^{-2} x+\ alpha ^{0} x ^{2}+\ alpha ^{-2} x ^{3} +\ alpha ^{-6} x ^{4} \ end {pmatrix}} \\ [6pt] = {} & {\ begin {pmatrix} \ alpha ^{-3}+\ alpha ^{5} x+\ alpha ^{7} x ^{2} & \ alpha ^{7}+\ alpha ^{-3} x \\\ alpha ^{4}+\ alpha ^{-5} x & 1 \ end {pmatrix}} { \ begin {pmatrix} \ alpha ^{-5}+\ alpha ^{-4} x & 1 \\ 1 & 0 \ end {pmatrix}} \\ & \ qquad {\ begin {pmatrix} \ alpha ^{-3}+\ alpha ^{-2} x+\ alpha ^{0} x ^{2}+\ alpha ^{-2} x ^{3}+\ alpha ^{-6} x ^{4} \\\ venstre (\ alpha ^{7}+\ alpha ^{-7} \ right)+\ left (2 \ alpha ^{-7}+\ alpha ^{4} \ right) x+\ left (\ alpha ^{-5}+ \ alpha ^{-6}+\ alpha ^{-1} \ højre) x ^{2}+\ venstre (\ alpha ^{-7}+\ alpha ^{-4}+\ alpha ^{6} \ højre) x ^{3}+\ venstre (\ alpha ^{4}+\ alpha ^{-6}+\ alpha ^{-1} \ højre) x ^{4} +2 \ alpha ^{5} x ^{5} \ end {pmatrix}} \\ [6pt] = {} & {\ begin {pmatrix} \ alpha ^{7} x+\ alpha ^{ 5} x ^{2}+\ alpha ^{3} x ^{3} & \ alpha ^{-3}+\ alpha ^{5} x+\ alpha ^{7} x ^{2} \\\ alpha ^{3}+\ alpha ^{-5} x+\ alpha ^{6} x ^{2} & \ alpha ^{4}+\ alpha ^{-5} x \ end {pmatrix}} {\ begin { pmatrix} \ alpha ^{-3}+\ alpha ^{-2} x+\ alpha ^{0} x ^{2}+\ alpha ^{-2} x ^{3}+\ alpha ^{-6} x ^{4} \\\ alpha ^{-4}+\ alpha ^{4} x+\ alpha ^{2} x ^{2}+\ alpha ^{-5} x ^{3} \ end {pmatrix }}. \ end {align}}}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/34d562bd03e10536d5a5c4f55c8b831b7dfec00f)
Vi har højst nået polynom af grad 3, og som

vi får

Derfor,

Lad dig ikke bekymre dig om, at Find ved brutal kraft en rod til Rødderne er og (efter at have fundet for eksempel kan vi dividere med tilsvarende monom, og roden til den resulterende monom kan let findes).








Lade

Lad os se efter fejlværdier ved hjælp af formel

hvor er rødderne til Vi kommer



Faktum, det burde ikke være overraskende.

Korrigeret kode er derfor [1 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0].
Afkodning med ulæselige tegn med et lille antal fejl
Lad os vise algoritmens adfærd for sagen med et lille antal fejl. Lad det modtagne ord være [1 0 0? 11 1? 0 0 0 1 0 1 0 0].
Igen skal du erstatte de ulæselige tegn med nuller, mens du opretter polynomet, der afspejler deres positioner
Beregn syndromerne og
Opret syndromspolynom




Lad os køre den udvidede euklidiske algoritme:

Vi har højst nået polynom af grad 3, og som

vi får

Derfor,

Lad dig ikke bekymre dig om, at roden til er


Lade

Lad os lede efter fejlværdier ved hjælp af formel, hvor er polynomets rødder


Vi får

Det skulle ikke være overraskende.

Korrigeret kode er derfor [1 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0].
Citater
Referencer
Primære kilder
-
Hocquenghem, A. (september 1959), "Codes correcteurs d'erreurs", Chiffres (på fransk), Paris, 2 : 147–156
-
Bose, RC ; Ray-Chaudhuri, DK (marts 1960), "On A Class of Error Correcting Binary Group Codes" (PDF) , Information and Control , 3 (1): 68–79, doi : 10.1016/s0019-9958 (60) 90287- 4 , ISSN 0890-5401
Sekundære kilder
-
Gill, John (nd), EE387 Notes #7, Handout #28 (PDF) , Stanford University, s. 42–45 , hentet 21. april 2010Kursusnotater bliver tilsyneladende lavet om i 2012: http://www.stanford.edu/class/ee387/
-
Gorenstein, Daniel ; Peterson, W. Wesley ; Zierler, Neal (1960), "Two-Error Correcting Bose-Chaudhuri Codes are Quasi-Perfect", Information and Control , 3 (3): 291–294, doi : 10.1016/s0019-9958 (60) 90877-9
-
Lidl, Rudolf; Pilz, Günter (1999), Applied Abstract Algebra (2. udgave), John Wiley
-
Reed, Irving S .; Chen, Xuemin (1999), Error-Control Coding for Data Networks , Boston, MA: Kluwer Academic Publishers , ISBN 0-7923-8528-4
Yderligere læsning
-
Blahut, Richard E. (2003), Algebraic Codes for Data Transmission (2. udgave), Cambridge University Press , ISBN 0-521-55374-1
-
Gilbert, WJ; Nicholson, WK (2004), Modern Algebra with Applications (2. udgave), John Wiley
-
Lin, S .; Costello, D. (2004), Error Control Coding: Fundamentals and Applications , Englewood Cliffs, NJ: Prentice-Hall
-
MacWilliams, FJ; Sloane, NJA (1977), Theory of Error-Correcting Codes , New York, NY: North-Holland Publishing Company
-
Rudra, Atri, CSE 545, Fejlrettelseskoder: Combinatorics, Algorithms and Applications , University at Buffalo, arkiveret fra originalen 2010-07-02 , hentet 21. april 2010