Kodex Bowes-Chowdhury-Hockwingham

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 25. února 2021; kontroly vyžadují 3 úpravy .

Bowes-Chowdhury-Hokvingham kódy (BCH kódy)  - v teorii kódování se jedná o širokou třídu cyklických kódů používaných k ochraně informací před chybami (viz Detekce a oprava chyb ). Liší se možností sestavení kódu s předem určenými korekčními vlastnostmi, konkrétně minimální kódovou vzdáleností. Speciálním případem BCH kódů je Reed-Solomonův kód .

Formální popis

BCH kód je cyklický kód , který může být dán polynomem generátoru . Pro jeho nalezení v případě BCH kódu je nutné předem určit délku kódu (nemůže být libovolná) a požadovanou minimální vzdálenost . Generující polynom můžete najít následujícím způsobem.

Nechť  je primitivní prvek pole (tj. ), nechť , je prvek pole objednávky , . Pak normalizovaný polynom minimálního stupně nad polem, jehož kořeny jsou po sobě jdoucí mocniny prvku pro nějaké celé číslo (včetně 0 a 1), je generujícím polynomem BCH kódu nad polem o délce a minimální vzdálenosti .

Pojďme si vysvětlit, proč bude mít výsledný kód právě takové vlastnosti (délka kódu , minimální vzdálenost ). Jak ukazuje Sagalovich [1] , délka BCH kódu je skutečně rovna pořadí prvků if a rovna pořadí prvků if . Jelikož nás případ nezajímá (takový kód neumí chyby opravovat, pouze je detekovat), bude délka kódu rovna pořadí prvku , tedy rovna . Minimální vzdálenost může být větší, než když kořeny minimálních funkcí [2] prvků jsou prvky, které rozšiřují posloupnost, tedy prvky .

Počet kontrolních symbolů je roven stupni , počtu informačních symbolů , hodnota se nazývá konstruktivní vzdálenost BCH kódu. Jestliže , pak se kód nazývá primitivní , jinak - neprimitivní .

Stejně jako u cyklického kódu lze polynom kódu získat z informačního polynomu stupně nejvýše , vynásobením a :

Konstrukce

Pro nalezení generujícího polynomu je nutné provést několik kroků [3] :

Příklady kódu

Primitivní binární (15, 7, 5) kód

Let , požadovaná délka kódu a minimální vzdálenost . Vezměte  — primitivní prvek pole a  — čtyři po sobě jdoucí mocniny prvku . Patří do dvou cyklotomických tříd na poli , kterému odpovídají ireducibilní polynomy . Pak polynom

má prvky jako kořeny a je generujícím polynomem BCH kódu s parametry .

Hexadecimální (15, 11, 5) kód (Reed-Solomonův kód)

Dovolit , a  být primitivní prvek . Pak

Každý prvek pole lze mapovat na 4 bity , takže jedno kódové slovo je ekvivalentní 60 = 15 × 4 bitům, takže sada 44 bitů je mapována na sadu 60 bitů. Dá se říci, že takový kód pracuje s útržky informací.

Kódování

Pro kódování pomocí BCH kódů se používají stejné metody jako pro kódování s cyklickými kódy.

Metody dekódování

BCH kódy jsou cyklické kódy, takže se na ně vztahují všechny metody používané k dekódování cyklických kódů. Existují však mnohem lepší algoritmy vyvinuté speciálně pro BCH kódy [4] .

Hlavní myšlenkou při dekódování BCH kódů je použití prvků konečného pole k očíslování pozic kódového slova (nebo ekvivalentně v pořadí koeficientů přidruženého polynomu). Níže je takový výčet pro vektor odpovídající polynomu .

hodnoty
lokátory polohy

Nechť je přijaté slovo spojeno s polynomem , kde chybový polynom je definován jako: , kde  je počet chyb v přijatém slově. Sady a se nazývají chybové hodnoty a lokátory chyb , kde , a .

Syndromy jsou definovány jako hodnoty přijatého polynomu na nulách polynomu generujícího kódu:

kde .

Abychom našli sadu lokátorů chyb, zavedeme polynom lokátoru chyb

jejichž kořeny se rovnají převráceným hodnotám lokátorů chyb. Pak platí následující vztah mezi koeficienty polynomu lokátoru chyb a syndromy [5] :

Pro řešení této soustavy rovnic s ohledem na koeficienty polynomu lokátoru chyb ( klíčová soustava rovnic ) jsou známy následující metody.

Algoritmus Berlekamp-Massey

Tento algoritmus je nejlépe vidět jako iterativní proces konstrukce minimálního zpětnovazebního (posunového) registru generujícího známou sekvenci syndromů . Jeho skutečným cílem je sestrojit polynom nejmenšího stupně, který splňuje rovnici

Řešení této rovnice je ekvivalentní podmínce

Iterační proces konstrukce takového polynomu je Berlekamp-Massey Algorithm .

Euklidovský algoritmus

Tato metoda je založena na známém Euklidově algoritmu pro nalezení největšího společného dělitele dvou čísel (gcd), pouze v tomto případě nehledáme gcd dvou čísel, ale dvou polynomů. Označme polynom chybových hodnot jako , kde syndromický polynom je roven . Ze soustavy rovnic vyplývá, že . Problém se v podstatě scvrkává na určení , který splňuje poslední rovnici a zároveň stupeň není vyšší . Ve skutečnosti takové řešení poskytne rozšířený Euklidův algoritmus aplikovaný na polynomy a , kde . Jestliže v th kroku rozšířený euklidovský algoritmus vytvoří řešení takové, že , pak , a . V tomto případě se nalezený polynom dále nepodílí na dekódování (hledá se pouze jako pomocný). Tímto způsobem bude nalezen polynom lokátoru chyb .

Přímé řešení (Petersson-Gorenstein-Zierlerův algoritmus, PGC)

Nechť BCH kód přes pole délky a s konstruktivní vzdáleností je dán generujícím polynomem , který má mezi kořeny prvky  - celé číslo (například 0 nebo 1). Pak má každé kódové slovo vlastnost, že . Přijaté slovo lze zapsat jako , kde  je chybový polynom. Nechat chyby se vyskytují na pozicích (  je maximální počet opravitelných chyb), takže , a  jsou velikosti chyb.

Syndrom přijatého slova můžete sestavit :

Úkolem je zjistit počet chyb , jejich polohu a význam pro známé syndromy .

Pro začátek předpokládejme, že se přesně rovná . Syndromy zapisujeme ve formě soustavy nelineárních rovnic v explicitní podobě:

Označte lokátorem -té chyby a  — velikostí chyby, . V tomto případě jsou všechny různé, protože pořadí prvku je , a proto, když je známo , může být definováno jako .

Pojďme sestavit polynom lokátorů chyb :

Kořeny tohoto polynomu jsou prvky inverzní k lokátorům chyb. Vynásobte obě strany tohoto polynomu číslem . Výsledná rovnost bude platná pro :

Pokud zde dosadíme , dostaneme rovnost , která platí pro každého a pro všechny :

Pro každý tedy můžete napsat svou vlastní rovnost. Pokud se sečtou , dostaneme rovnost, která platí pro každý z nich :

Protože (to znamená, že se mění ve stejných mezích jako dříve), je soustava rovnic pro syndromy transformována na soustavu lineárních rovnic :

nebo ve formě matrice,

kde

Pokud je počet chyb skutečně roven , pak je tento systém řešitelný a lze najít hodnoty koeficientů . Pokud je číslo , pak se determinant matice bude rovnat . To je známka toho, že počet chyb je menší . Proto je nutné sestavit systém za předpokladu, že počet chyb se rovná , vypočítat determinant nové matice atd., dokud nezjistíme skutečný počet chyb.

Hledat Chen

Po vyřešení klíčové soustavy rovnic jsou získány koeficienty polynomu lokátoru chyb. Jeho kořeny (prvky inverzní k lokátorům chyb) lze najít jednoduchým opakováním všech prvků pole . K nim najděte prvky, které jsou inverzní k násobení - to jsou lokátory chyb . Tento proces lze snadno implementovat do hardwaru.

Forneyho algoritmus

Pomocí lokátorů můžete najít chybové pozice ( ) a chybové hodnoty ze systému pro syndromy přijetím . Dekódování dokončeno.

Viz také

Poznámky

  1. Sagalovich, 2007 , str. 175-176.
  2. Sagalovich, 2007 , str. 176.
  3. Sagalovich, 2007 , str. 168.
  4. Umění kódování opravující chyby Archivováno 1. dubna 2013 na Wayback Machine , str. 91.
  5. Sagalovich, 2007 , str. 200

Literatura