8 Kořeny cyklických kódů, BCH-kódy



Podobné dokumenty
Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30

BCH kódy. Alena Gollová, TIK BCH kódy 1/27

Charakteristika tělesa

4 Počítání modulo polynom

Cyklické kódy. Definujeme-li na F [x] n sčítání a násobení jako. a + b = π n (a + b) a b = π n (a b)

Polynomy nad Z p Konstrukce faktorových okruhů modulo polynom. Alena Gollová, TIK Počítání modulo polynom 1/30

[1] samoopravné kódy: terminologie, princip

Cyklické kódy. Alena Gollová, TIK Cyklické kódy 1/23

grupa těleso podgrupa konečné těleso polynomy komutativní generovaná prvkem, cyklická, řád prvku charakteristika tělesa

Věta o dělení polynomů se zbytkem

1 Řešení soustav lineárních rovnic

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

1 Polynomiální interpolace

Pomocný text. Polynomy

Samoopravné kódy, k čemu to je

[1] samoopravné kódy: terminologie, princip

Matematika IV 10. týden Kódování

Odpřednesenou látku naleznete v kapitole 3.3 skript Diskrétní matematika.

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i.

Hammingův odhad. perfektní kódy. koule, objem koule perfektní kód. triviální, Hammingův, Golayův váhový polynom. výpočet. příklad

pochopení celé kapitoly je myšlenka, že těleso S lze považovat za vektorový prostor

1 Linearní prostory nad komplexními čísly

Soustavy. Terminologie. Dva pohledy na soustavu lin. rovnic. Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová.

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

2. Určete jádro KerL zobrazení L, tj. nalezněte alespoň jednu jeho bázi a určete jeho dimenzi.

Obsah. Lineární rovnice. Definice 7.9. a i x i = a 1 x a n x n = b,

Subexponenciální algoritmus pro diskrétní logaritmus

Vlastní číslo, vektor

Soustavy linea rnı ch rovnic

[1] Definice 1: Polynom je komplexní funkce p : C C, pro kterou. pro všechna x C. Čísla a 0, a 1,..., a n nazýváme koeficienty polynomu.

maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést

[1] Motivace. p = {t u ; t R}, A(p) = {A(t u ); t R} = {t A( u ); t R}

Vektorový prostor. Př.1. R 2 ; R 3 ; R n Dvě operace v R n : u + v = (u 1 + v 1,...u n + v n ), V (E 3 )...množina vektorů v E 3,

1 Báze a dimenze vektorového prostoru 1

3 Lineární kombinace vektorů. Lineární závislost a nezávislost

Kódování Obsah. Reedovy-Solomonovy kódy. Radim Farana Podklady pro výuku. Cyklické kódy.

Těleso racionálních funkcí

0.1 Úvod do lineární algebry

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

[1] x (y z) = (x y) z... (asociativní zákon), x y = y x... (komutativní zákon).

Hammingovy kódy. dekódování H.kódů. konstrukce. šifrování. Fanova rovina charakteristický vektor. princip generující a prověrková matice

1 Mnohočleny a algebraické rovnice

Lineární algebra : Báze a dimenze

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

2. V Q[x] dělte se zbytkem polynomy:

Teorie informace a kódování (KMI/TIK)

1 Mnohočleny a algebraické rovnice

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

0.1 Úvod do lineární algebry

1 Soustavy lineárních rovnic

ALGEBRA. Téma 4: Grupy, okruhy a pole

1 Determinanty a inverzní matice

EUKLIDOVSKÉ PROSTORY

5. Lokální, vázané a globální extrémy

Báze a dimenze vektorových prostorů

Řešené úlohy z Úvodu do algebry 1

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava luk76/la1

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Výběr báze. u n. a 1 u 1

)(x 2 + 3x + 4),

Okruhy, podokruhy, obor integrity, těleso, homomorfismus. 1. Rozhodněte, zda daná množina M je podokruhem okruhu (C, +, ): f) M = { a

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie

Jak funguje asymetrické šifrování?

POLYNOMY 1 Jan Malý UK v Praze a UJEP v Ústí n. L. 1. Přehled teorie

Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. y + y = 4 sin t.

x 2 = a 2 + tv 2 tedy (a 1, a 2 ) T + [(v 1, v 2 )] T A + V Příklad. U = R n neprázdná množina řešení soustavy Ax = b.

Kapitola 11: Lineární diferenciální rovnice 1/15

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

Návody k domácí části I. kola kategorie C

Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012

Lineární algebra : Metrická geometrie

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA II, letní semestr 2000/2001 Michal Marvan. 14.

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

Univerzita Karlova v Praze Pedagogická fakulta

Lineární prostory. - vektorové veličiny(síla, rychlost, zrychlení,...), skládání, násobení reálným číslem

Diskrétní matematika 1. týden

1 Co jsou lineární kódy

Soustavy lineárních rovnic

Teorie informace a kódování (KMI/TIK)

64. ročník matematické olympiády Řešení úloh krajského kola kategorie A

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Lineární zobrazení. 1. A(x y) = A(x) A(y) (vlastnost aditivity) 2. A(α x) = α A(x) (vlastnost homogenity)

vyjádřete ve tvaru lineární kombinace čtverců (lineární kombinace druhých mocnin). Rozhodněte o definitnosti kvadratické formy κ(x).

Klauzurní část školního kola kategorie A se koná

Základy teorie množin

(4x) 5 + 7y = 14, (2y) 5 (3x) 7 = 74,

Úlohy klauzurní části školního kola kategorie A

a + b + c = 2 b + c = 1 a b = a 1 2a 1 + a a 3 + a 5 + 2a 2 + a 2 + a

POLYNOMY 1 Jan Malý UK v Praze a UJEP v Ústí n. L.

10. Vektorové podprostory

a vlastních vektorů Příklad: Stanovte taková čísla λ, pro která má homogenní soustava Av = λv nenulové (A λ i I) v = 0.

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

Hlubší věty o počítání modulo

Úlohy krajského kola kategorie A

Úvod. Integrování je inverzní proces k derivování Máme zderivovanou funkci a integrací získáme původní funkci kterou jsme derivovali

Západočeská univerzita v Plzni FAKULTA PEDAGOGICKÁ KATEDRA MATEMATIKY, FYZIKY A TECHNICKÉ VÝCHOVY

Lineární algebra Kapitola 1 - Základní matematické pojmy

Transkript:

24 8 Kořeny cyklických kódů, BCH-kódy Generující kořeny cyklických kódů Nechť K je cyklický kód délky n nad Z p s generujícím polynomem g(z). Chceme najít rozšíření T tělesa Z p, tedy nějaké těleso GF (p k ), ve kterém by měl polynom g(x) stupně m celkem m různých kořenů. Pokud se mám to podaří, budou tyto kořeny společné všem kódovým polynomům a kód K jimi bude jednoznačně určen. 8.1 Příklad Uvažujme těleso GF (8), T = Z 2 [x]/x 3 + x + 1, aneb T = {aα 2 + bα + c, a, b, c Z 2, α 3 = α + 1}. Víme z předchozí kapitoly, že α je primitivní prvek tělesa T a že má minimální polynom m α (x) = x 3 + x + 1. Dále víme, že x 7 1 se nad Z 2 rozkládá na ireducibilní polynomy takto: x 7 1 = (x+1)(x 3 +x 2 +1)(x 3 +x+1). 1) Lze tedy sestrojit cyklický kód K délky 7 nad Z 2 s generujícím polynomem g(z) = z 3 +z+1. Přitom v(z) K právě, když g(z) v(z). Ale g(z) = m α (z) a v(z) je dělitelný minimálním polynomem m α (z) s kořenem α právě, když v(z) má také kořen α. Cyklický kód K je jednoznačně určen kořenem α: K = {v(z) Z (7) 2, v(α) = 0}. Kořene α lze využít ke kontrole - pokud v(α) 0 v tělese T, tak polynom v(z) je chybný. Z podmínky v(α) = 0 odvodíme kontrolní matici kódu K. Slova převádíme na polynomy takto: Odtud v = (v 1, v 2,..., v 6, v 7 ) v(z) = v 1 z 6 + v 2 z 5 +... + v 6 z + v 7 v(α) = v 1 α 6 + v 2 α 5 +... + v 6 α + v 7 = (α 6 α 5... α 1) v T = 0 a kontrolní matice nad tělesem T pro kód K je (α 6 α 5... α 1). Rozepíšeme-li mocniny prvku α na polynomy stupně nejvýše 2 (prvky tělesa T ), získáme homogenní soustavu nad Z 2 pro kódová slova: v(α) = v 1 (α 2 + 1) + v 2 (α 2 + α + 1) +... + v 6 α + v 7 = 0 právě, když (první rovnice následující soustavy je pro koeficienty u α 2, druhá u α, třetí u 1) 0 0 1 1 1 0 1 0 v T = 0 0 Matice této soustavy je kontrolní maticí H nad Z 2 pro kód K. Sloupec α i = aα 2 + bα + c v matici H nad T odpovídá sloupci a b c v matici H nad Z 2. Všimněme si, že kontrolní matice H má za sloupce všechny nenulové trojice nad Z 2 (protože α byl primitivní prvek a vygeneroval všechny nenulové prvky tělesa T ). Náš kód K je tedy cyklický Hammingův kód se třemi kontrolními znaky. Tudíž opravuje 1 chybu a opravování lze také dělat pomocí kořene α. V případě jedné chyby je w(z) = v(z) + a z i = v(z) + z i (neboť a Z 2 ), pro nějaký v(z) K. Pak w(α) = polynom v α stupně nejvýše 2 = 0 + α i, přičemž mocnina primitivního prvku α i je určena jednoznačně, tudíž chyba je v i-té mocnině. 2) Analogicky lze sestrojit cyklický kód K délky 7 nad Z 2 s generujícím polynomem g(z) = (z + 1)(z 3 + z + 1). Přitom v(z) K právě, když g(z) v(z). Ale g(z) = m 1 (z)m α (z) a v(z) je dělitelný oběma minimálními (a tudíž ireducibilními) polynomy m 1 (z) i m α (z) právě, když v(z) má kořeny α a 1 v tělese T. Cyklický kód K je jednoznačně určen kořeny α, 1: K = {v(z) Z 7 2, v(α) = 0 a v(1) = 0}. Kontrolní matice pro kód K bude ( α 6 α 5... α 1 1 6 1 5... 1 1 ) nad T 0 1 1 1 0 1 0 1 1 1 1 1 1 1 nad Z 2. 8.2 Definice Generující kořeny cyklického kódu K délky n nad Z p jsou takové prvky c 1, c 2,..., c m nějakého tělesa GF (p k ), že pro každý v(z) Z (n) p je v(z) K právě, když v(z) má kořeny c 1, c 2,..., c m v tělese GF (p k ). Alena Gollová: TIK 24 27. května 2013

25 8.3 Poznámka Generující kořeny nejsou určeny jednoznačně, protože kódové polynomy jsou celočíselné polynomy nad Z p a mají v tělese charakteristiky p s kořenem c automaticky také kořeny c p, c (p2), atd. Například kód K délky 7 nad Z 2 s generujícím polynomem g(z) = z 3 +z +1 z prvního příkladu má v tělese T = Z 2 [x]/x 3 +x+1 generující kořen α, ale také má generující kořeny α, α 2 a α 4 = α 2 + α. Stejně tak je generujícím kořenem kódu K prvek α 2. 8.4 Tvrzení Cyklický kód K délky n nad Z p má v tělese GF (p k ) generující kořeny právě, když má jeho generující polynom g(z) v tělese T tolik navzájem různých kořenů, kolik je jeho stupeň. Důkaz Nechť g(z) je stupně m a má v tělese T celkem m různých kořenů c 1, c 2,..., c m. Kódové polynomy jsou násobky generujícího polynomu, v(z) K právě, když v(z) = a(z)g(z). Tudíž c 1, c 2,..., c m jsou též kořeny každého kódového polynomu. Naopak, protože kořeny jsou různé, tak každý polynom s kořeny c 1, c 2,..., c m je dělitelný m i=1 (z c i), ale polynom g(z) = m i=1 (z c i), neboť st(g) = m a c 1, c 2,..., c m jsou jeho kořeny (můžeme předpokládat, že generující polynom je monický). Takže každý polynom s kořeny c 1, c 2,..., c m je kódovým polynomem. Má-li g(z) v tělese T méně než m různých kořenů, pak existují polynomy, které tyto kořeny mají také a přesto nejsou dělitelné polynomem g(z), aneb nejsou to kódové polynomy. 8.5 Příklad Polynom x 5 1 se nad Z 5 rozkládá na ireducibilní polynomy takto: x 5 1 = (x 1) 5. Lze tedy sestrojit cyklický kód K délky 5 nad Z 5 s generujícím polynomem g(z) = (z 1) 2. Každý kódový polynom je dělitelný polynomem g(z), má tedy kořen 1 v Z 5. Ale ne každý polynom s kořenem 1 je kódový, neboť kořen 1 může být jen jednonásobný. Vlastnost v(1) = 0 necharakterizuje jednoznačně kód K. 8.6 Cyklický kód K délky n nad Z p je svými generujícími kořeny v tělese GF (p k ) (označme je T ) jednoznačně určen. Z generujících kořenů spočteme generující polynom i kontrolní matici. Generující polynom je nenulový kódový polynom nejmenšího stupně, aneb nenulový polynom nad Z p nejmenšího stupně s danými kořeny v tělese. Je-li generujícím kořenem jeden prvek c, jedná se o minimální polynom pro tento prvek, tj. g(z) = m c (z). Jsou-li generujícími kořeny prvky c 1, c 2,..., c m, jedná se o součin minimálních polynomů pro ty prvky, které mají různé minimální polynomy (aneb které splňují c i c (pl ) j ): g(z) = lcm(m c1 (z),..., m cl (z)) = m ci (z) přes různé polynomy Kontrolní matice cyklického kódu K délky n s generujícím kořenem c je odvozena ze vztahu v(c) = 0, ( což je vlastně homogenní soustava, kterou musí splňovat kódové polynomy. Matice této soustavy je c n 1 c n 2... c 1 ) nad tělesem T. Nahradíme-li každé c i = polynom stupně nejvýše k v tělese T sloupcem jeho koeficientů, získáme matici H o k řádcích nad Z p. Jsou-li v této matici některé řádky lineární kombinací ostatních, můžeme je vyškrtnout (a získáme matici pro ekvivalentní homogenní soustavu rovnic). Kontrolní matice kódu K délky n s generujícími kořeny c 1, c 2,..., c m se získá analogicky z matice 1 c n 2 1... c 1 1 2 c n 2 2... c 2 1 : : : : c n 2 m... c m 1 m nad T. Opravování jedné chyby: Cyklický kód nad Z p s jedním generujícím kořenem pro p > 2 většinou neopravuje jednu chybu. V případě jedné chyby je w(z) = v(z) + a z i pro v(z) K. Například nad Z 3 mohou být dvě možnosti, jak vyjádřit syndrom ve tvaru a c i, neboť může být w(c) = 1 c i ale taky w(c) = 2 c j. Nevíme tedy, zda chybový polynom je e(z) = 1 z i nebo e(z) = 2 z j, a neumíme chybu opravit. Cyklický kód nad Z p s více generujícími kořeny jednu chybu už opravovat může a lze to udělat pomocí kořenů. Vyjádříme syndrom pro každý kořen c k všemi možnostmi jako w(c k ) = a (c k ) i (pro různá a Z p a různá 0 i n 1) a je-li pouze jediná možnost společná všem kořenům, pak tato možnost určuje chybový polynom. Alena Gollová: TIK 25 27. května 2013

26 8.7 Otázka č.1 Máme těleso T o p k prvcích a v něm vybereme prvky c 1, c 2,..., c m. Chceme, aby tyto prvky byly generujícími kořeny cyklického kódu nad Z p. Pro jakou délku n kódových slov je to možné? Víme, že generující polynom cyklického kódu délky n musí dělit x n 1 v Z p [x]. g(z) = lcm(m c1 (z),..., m cl (z)), takže každý minimální polynom m ci (x) musí dělit x n 1. Ale m ci (x) x n 1 právě, když c i je kořen x n 1, aneb když c n i = 1. Dostáváme podmínku, že řád každého kořene c i musí dělit n. Délka cyklického kódu s generujícími kořeny c 1, c 2,..., c m je n = l lcm(r(c 1 ),..., r(c m )) pro libovolné l N. 8.8 Příklad Je dáno těleso komplexních čísel nad Z 3, T = Z 3 [x]/x 2 + 1 = {ai + b, a, b Z 3, i 2 = 1}. a) Cyklický kód s generujícím kořenem i v tělese T má nejmenší možnou délku n = r(i) = 4. Jeho generující polynom ( je g(z) = m) i (z) = z 2 + 1. Jeho kontrolní matice je (i 3 i 2 i 1) nad tělesem T, což odpovídá matici 2 0 1 0 nad Z 0 2 0 1 3. b) Cyklický kód s generujícími kořeny i a i + 1 v tělese T má nejmenší délku n = lcm(r(i), r(i + 1)) = 8. Jeho generující polynom je g(z) = m i (z)m i+1 (z) = (z 2 + 1)(z 2 + z + 2) = z 4 + z 3 + z + 2. Jeho kontrolní matice je ( (i + 1) 7 (i + 1) 6 (i + 1) 5... (i + 1) 1 i 7 i 6 i 5... i 1 ) 1 1 2 0 2 2 1 0 2 0 2 2 1 0 1 1 2 0 1 0 2 0 1 0 0 2 0 1 0 2 0 1 Opravíme ještě jednu chybu ve slově w = (1 1 0 0 0 0 2 1) pomocí dosazování kořenů. w(i) = i 7 + i 6 + 2i + 1 = 2i + 2 + 2i + 1 = i = a i j = 1 i 1 = 1 i 5 = 2 i 3 = 2 i 7 w(i + 1) = (i + 1) 7 + (i + 1) 6 + 2(i + 1) + 1 = (i + 2) + i + 2(i + 1) + 1 = i + 2 = a (i + 1) j = 1 (i + 1) 7 = 2 (i + 1) 3 Chybový polynom je určen jednoznačně, jediná možnost odpovídající oběma kořenům je e(z) = 2 z 3. Opravíme v(z) = w(z) e(z), tedy v = (1 1 0 0 1 0 2 1). 8.9 Otázka č. 2. Máme cyklický kód K délky n nad Z p. V jakém tělese T lze najít jeho generující kořeny? Musí takové těleso vždy existovat? Hledáme tedy rozšíření T tělesa Z p, ve kterém by měl generující polynom g(x) stupně m celkem m různých kořenů. Víme, že generující polynom g(x) je dělitelem polynomu x n 1 nad Z p. Pokusíme se tedy najít těleso T charakteristiky p, tedy nějaké GF (p k ), nad kterým by se polynom x n 1 rozkládal na kořenové činitele (s jednonásobnými kořeny). V tělese T o p k prvcích má polynom x n 1 celkem n různých kořenů právě, když je n dělitelem počtu prvků cyklické grupy T, tedy když n p k 1. Kořeny jsou pak všechny prvky n-prvkové podgrupy generované prvkem β řádu n a mají tvar β i pro 1 i n. Hledáme tedy k tak, aby n p k 1. Přitom n p k 1 iff p k 1 = 0 v Z n iff p k = 1 v Z n Takové k lze najít jenom, když p není dělitelem čísla n. Z rovnosti p k = 1 lze totiž spočítat inverzní prvek k prvku p, konkrétně p 1 = p k 1 v Z n. Víme, že v Z n jsou invertibilní pouze prvky nesoudělné s n, takže p musí být nesoudělné s n, což pro prvočíslo p nastane právě, když p n. Dostáváme podmínku p n, bez níž bychom nemohli vyřešit naši úlohu - nemohli bychom najít těleso těleso T o p k prvcích, v němž má polynom x n 1 celkem n různých kořenů. Podíváme-li se na to z druhé strany, tak pro n = mp lze v tělese T charakteristiky p rozložit polynom x n 1 = x mp 1 = (x m 1) p. Tudíž všechny jeho kořeny budou aspoň p-násobné a nebude n různých kořenů. Pokud p n, pak naši úlohu skutečně vyřešíme. Euler-Fermatova věta tvrdí: Když p n, pak p ϕ(n) = 1 v Z n. Můžeme tedy volit k = ϕ(n), pak v tělese GF (p ϕ(n) ) bude mít polynom x n 1 celkem n různých kořenů. Mohou ale existovat i menší tělesa, která řeší naši úlohu. To nejmenší k, které splňuje p k = 1 v grupě invertibilních prvků Z n, je vlastně řád prvku p v této grupě, k = r(p) v Z n. Dokonce víme: p k = 1 v Z n právě, když r(p) k Těles GF (p k ), v nichž má polynom x n 1 celkem n různých kořenů, je tedy nekonečně mnoho (za předpokladu, že p n). Shrňme naše úvahy do následujícího tvrzení:. Alena Gollová: TIK 26 27. května 2013

27 8.10 Tvrzení Nechť K je cyklický kód délky n nad Z p s generujícím polynomem g(z) stupně m a nechť p n. Položme k = ϕ(n) (anebo k = r(p) v grupě Z n). Pak v tělese GF (p k ) má generující polynom g(z) právě m různých kořenů tvaru β i1, β i2,..., β im pro nějaký prvek β řádu n v tělese GF (p k ) (aneb nalezneme je mezi kořeny polynomu x n 1). Tyto kořeny jsou generujícími kořeny cyklického kódu K. 8.11 Příklad Cyklický kód K délky 4 nad Z 7 má generující polynom g(z) = z 2 + 1. Jeho generující kořeny budeme hledat v tělese GF (7 k ), kde k = ϕ(4) = 2. Zkonstruujeme těleso GF (49), T = Z 7 [x]/q(x), kde q(x) bude ireducibilní nad Z 7 stupně 2. Najdeme jeho primitivní prvek (označme ho α, aneb r(α) = 48) a dopočteme prvek řádu n = 4 (označme ho β = α 12 ). Generující kořeny kódu K budou dva z prvků β, β 2, β 3 a β 4 = 1, určíme je dosazováním. BCH-kódy Pokud budeme volit kořeny šikovně, můžeme zaručit opravování předem daného množství chyb. Následující konstrukci vymysleli pánové Bose a Ray-Chaudhuri a nezávisle na nich pan Hocquenghem. 8.12 Definice BCH-kód délky n nad Z p (p n) s plánovanou vzdáleností d (d n) je cyklický kód s generujícími kořeny β, β 2, β 3,..., β d 1, kde β je prvek řádu n v nějakém tělese GF (p k ). 8.13 Tvrzení BCH-kód K délky n nad Z p s plánovanou vzdáleností d má skutečnou Hammingovu vzdálenost kódu d H (K) d. Tudíž BCH-kód s plánovanou vzdáleností d objevuje (d 1) chyb a opravuje [ d 1 2 ] chyb. 8.14 Poznámka Pro vytvoření BCH-kódu nad Z p s plánovanou vzdáleností d není vždy nutné vyžadovat všechny kořeny β, β 2,..., β d 1. Kódové polynomy jsou polynomy nad Z p a tudíž musí mít v tělese charakteristiky p s kořenem c, také kořeny c p, c (p2), atd. Speciálně pro BCH-kódy nad Z 2 s (lichou) plánovanou vzdáleností d stačí požadovat kořeny β, β 3, β 5,..., β d 2, neboť potom prvky β 2, β 4, β 6,..., β d 1 budou také kořeny daného kódu. 8.15 BCH-kódy nad Z p délky n = p k 1: Má-li BCH-kód nad Z p délku n = p k 1, pak je kořen β primitivním prvkem v tělese GF (p k ) (kde p k = n + 1). Vždy lze zvolit ireducibilní polynom q(x) stupně k tak, aby kořen α tohoto polynomu byl primitivním prvkem tělesa T = Z p [x]/q(x), jehož prvky zapisujeme jako polynomy stupně nejvýše k 1 v proměnné α. Provedeme-li takovouto konstrukci tělesa GF (p k ), pak volíme za kořen β = α. BCH-kódy nad Z p délky n = p k 1 s jediným generujícím kořenem α v tomto tělese budou mít generující polynom g(z) = m α (z) = q(z) a jejich kontrolní matice ( α n 1 α n 2... α 1 ) nad T obsahuje všechny nenulové prvky tělesa T. Tudíž kontrolní matice H nad Z p má ve sloupcích všechny nenulové k-tice nad Z p. Každé dva sloupce matice H jsou lineárně nezávislé právě, když pracujeme nad Z 2 (neboť nad Z p, p > 2, jsou v H sloupce S a 2S, které jsou různé, ale lineárně závislé). Tedy BCH-kódy nad Z 2 opravují jednu chybu a mají Hammingovu vzdálenost d H (K) = 3. Ale to není překvapující, neboť kódové polynomy nad Z 2 mají v tělese charakteristiky 2 s kořenem α také kořen α 2 (a α 4, atd.), tedy dvě po sobě jdoucí mocniny prvku α, a jsou to vlastně BCH-kódy s plánovanou vzdáleností d = 3. BCH-kód nad Z 2 délky n = 2 k 1 s jedním kořenem je tudíž cyklický Hammnigův kód o k kontrolních znacích. BCH-kódy nad Z 2 délky n = p k 1 s generujícími kořeny α, α 3, α 5,..., α 2t 1 ve výše zkonstruovaném tělese, jsou podprostory Hammingových kódů. Opravují t chyb a mají velmi dobrý informační poměr ( relativně malou redundanci). Jsou pro ně také vypracovány metody, jak opravovat vícenásobné chyby pomocí kořenů. 8.16 Příklad Cyklický kód délky n = 7 opravující dvě chyby má Hammingovu vzdálenost d H (K) = 5. Vyrobíme BCH-kód s plánovanou vzdáleností d = 5. Použijeme těleso GF (2 3 ) = GF (8), například těleso T = Z 2 [x]/x 3 + x + 1 = {aα 2 + bα + c, a, b, c Z 2, α 3 = α + 1}, které má primitivní prvek α. Za kořeny volíme prvky α a α 3 = α + 1. Alena Gollová: TIK 27 27. května 2013

28 Kontrolní matice nad T, resp. nad Z 2 je ( ) α 6 α 5... α 1 (α + 1) 6 (α + 1) 5... (α + 1) 1 Generující polynom je (viz předchozí kapitola) 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 1 1 g(z) = m α (z)m α+1 (z) = (z 3 + z + 1)(z 3 + z 2 + 1) = z 6 + z 5 + z 4 + z 3 + z 2 + z + 1. Jde o opakovací kód délky 7 a jeho skutečná Hammingova vzdálenost je d H (K) = 7, tedy větší než plánovaná vzdálenost d = 5. 8.17 BCH-kódy nad Z p délky n p k 1: Má-li BCH-kód nad Z p délku n p k 1, pak je β prvkem řádu n v tělese GF (p k ), kde volíme k = ϕ(n) (anebo k = r(p) v grupě Z n). Tato volba zafunguje kdykoli p n (viz odpověď na otázku č.2). 8.18 Příklad BCH-kód délky n = 9 nad Z 2 s plánovanou vzdáleností d = 3 bude mít za kořen prvek β řádu r(β) = 9 v tělese GF (2 ϕ(9) ) = GF (2 6 ) = GF (64). Menší těleso GF (2 k ) obsahující prvek řádu 9 nenajdeme, protože r(2) = 6 v grupě Z 9. Toto těleso sestrojíme jako Z 2 [x]/q(x), kde q(x) bude polynom šestého stupně ireducibilní nad Z 2. Prvky tělesa budou polynomy nejvýše pátého stupně zapsané v proměnné α a přepisovací pravidla budou dána vztahem q(α) = 0. V tělese najdeme primitivní prvek, při šikovné volbě ireducibilního polynomu q(x) bude primitivním prvkem přímo prvek α a r(α) = 63. Potom generujícím kořenem našeho BCH-kódu bude prvek β = α 7, neboť r(β) = r(α 7 ) = 9.. Alena Gollová: TIK 28 27. května 2013