1 Co jsou lineární kódy

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

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

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

1 Co jsou lineární kódy

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.

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

Báze a dimenze vektorových prostorů

10 Přednáška ze

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

Lineární algebra : Báze a dimenze

1 Lineární prostory a podprostory

Hammingův kód. Vladislav Kosejk. České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská Detašované pracoviště Děčín

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

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

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)

Samoopravné kódy, k čemu to je

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

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

6 Lineární geometrie. 6.1 Lineární variety

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

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

1 Soustavy lineárních rovnic

Kódováni dat. Kódy používané pro strojové operace

Teorie kódování se zabývá tím, jak rychle a spolehlivě přenášet informace z jednoho místa na druhé. Mezi její aplikace patří například minimalizace

DEFINICE Z LINEÁRNÍ ALGEBRY

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

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.

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

19. Druhý rozklad lineární transformace

Základní pojmy teorie množin Vektorové prostory

Samoopravné kódy. Katedra matematiky a Institut teoretické informatiky Západočeská univerzita

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

1 Báze a dimenze vektorového prostoru 1

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

FAKULTA STROJNíHO INŽENÝRSTVí ÚSTAV MATEMATIKY

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

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Lineární algebra : Lineární prostor

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

10. Vektorové podprostory

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

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

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

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

Lineární zobrazení. V prvním z následujících tvrzení navíc uvidíme, že odtud plynou a jsou tedy pak rovněž splněny podmínky:

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

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

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,

Lineární algebra : Metrická geometrie

Řekněme nejprve, jaké kódování nás v tomto textu bude zajímat a jaké ne. K. Komprese dat, tedy kódování dat s cílem zmenšit jejich objem.

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

Vlastní číslo, vektor

VĚTY Z LINEÁRNÍ ALGEBRY

2. kapitola: Euklidovské prostory

Těleso racionálních funkcí

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

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice

Matice. a m1 a m2... a mn

0.1 Úvod do lineární algebry

Pavel Horák LINEÁRNÍ ALGEBRA A GEOMETRIE 1 UČEBNÍ TEXT

1 Linearní prostory nad komplexními čísly

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

Báze a dimense. Odpřednesenou látku naleznete v kapitolách a 3.6 skript Abstraktní a konkrétní lineární algebra.

Lineární algebra : Úvod a opakování

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

Co je to univerzální algebra?

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.

Úlohy nejmenších čtverců

7. Důležité pojmy ve vektorových prostorech

PROSTORY SE SKALÁRNÍM SOUČINEM. Definice Nechť L je lineární vektorový prostor nad R. Zobrazení L L R splňující vlastnosti

Definice : Definice :

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

EUKLIDOVSKÉ PROSTORY

Matice lineárních zobrazení

Necht L je lineární prostor nad R. Operaci : L L R nazýváme

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.

Pavel Horák, Josef Janyška LINEÁRNÍ ALGEBRA UČEBNÍ TEXT

Projektivní prostor a projektivní zobrazení

Lineární algebra nad obecným Z m, lineární kódy

15 Maticový a vektorový počet II

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

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

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A

7 Ortogonální a ortonormální vektory

Vlastní čísla a vlastní vektory

Lineární algebra : Skalární součin a ortogonalita

Golayův kód 23,12,7 -kód G 23. rozšířený Golayův kód 24,12,8 -kód G 24. ternární Golayův kód 11,6,5 -kód G 11

Vrcholová barevnost grafu

Lineární algebra : Skalární součin a ortogonalita


Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Psaní na mokrý papír. Andrew Kozlik KA MFF UK

Datum sestavení dokumentu: 9. srpna Lineární algebra 1

1 Vektorové prostory.

Matematika 2 pro PEF PaE

METRICKÉ A NORMOVANÉ PROSTORY

Vlastní čísla a vlastní vektory

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

15. Moduly. a platí (p + q)(x) = p(x) + q(x), 1(X) = id. Vzniká tak struktura P [x]-modulu na V.

ALGEBRA. Téma 5: Vektorové prostory

Transkript:

1 Žádný záznam informace a žádný přenos dat není absolutně odolný vůči chybám. Někdy je riziko poškození zanedbatelné, v mnoha případech je však zaznamenaná a přenášená informace jištěna přidáním dat, která se jeví jako redundantní (nadbytečná) v případě, že nedojde k žádné chybě, která však při výskytu chyby mohou pomoci signalizovat, že k chybě došlo, případně umožnit její opravu. Typickým příkladem je přidání paritního bitu. Předpokládejme, že chceme ochránit data složená z hexadecimálních cifer. Každou cifru reprezentujeme čtyřmi bity. Předpokládejme, že data posíláme po kanálu zatíženým značným šumem, a proto přidáme ke každé cifře paritní bit. Například hexadecimální AF01, což je bitově se vyšle jako 1010 1111 0000 0001 10100 11110 00000 00011. Takový kód se nazývá paritní a umožní odhalit nejvýše jednu chybu v bloku. Pokud například při přenosu bloku 10100 dojde při různých přenosech postupně k chybě na pozicích 1, 2, 3, 4 a 5, dostaneme slova 00100, 11100, 10000, 10110, 10101. Pokaždé sice odhalíme, že data byla poškozena, neboť přijatý blok nevyhovuje paritní kontrole má lichý počet bitů, ale nemáme žádný nástroj, jak určit, na které pozici k chybě došlo. Dvojnásobné chyby neodhalíme vůbec. Existují lepši zabezpečení? Zdá se, že opravdu bezpečné, i když co do využití místa nepříliš úsporné, by bylo zdvojení každé pozice. Naše zpráva AF01 by pak byla vyslána jako 11001100 11111111 00000000 00000011. Nicméně po krátné úvaze uvidíme, že jsme si příliš nepolepšili. Některé dvojnásobné chyby náš kód odhalí, ale pokud k nim dojde na bitech bezprostředně po sobě následujících, tak ji odhalit nemusí. K tomu bychom potřebovali kód, který každou pozici ztrojnásobí. Trojnásobný kód signalizuje výskyt dvojnásobných chyb, a umožňuje opravit chyby jednonásobné. Takový kód je ovšem současně značně neúsporný. Čtveřici bitů kóduje dvanácti bity. Ukážeme, že téhož efektu lze dosáhnout kódem, který čtveřici bitů kóduje 1

pomocí sedmi bitů. Takovému kódu se říká Hammingův a lze jej vytvořit pomocí Fanovy roviny. Na množině {1,..., 7} je dáno 7 bloků: {1, 2, 3}, {3, 4, 5}, {1, 5, 6}, {1, 4, 7}, {2, 5, 7}, {3, 6, 7}, {2, 4, 6}. Vidíme, že Každé dva různé bloky se protínají právě v jednom bodě, každými dvěma různými body prochází právě jeden blok, existují čtyři body, z nichž žádné tři neleží v jednom bloku. Systém podmnožin (bloků), který splňuje výše uvedené podmínky, se nazývá projektivní rovina. Blokům se pak obvykle říká přímky. Pokud projektivní rovinu konstruujeme z nějakého systému bodů a přímek, tak pro rozlišení hovoříme o projektivních bodech a projektivních přímkách. Dříve, než přistoupíme k definici Hammingova kódu, tak poukážeme na roli, kterou v našich úvahách hrají vektorové prostory nad dvouprvkovým tělesem F = {0, 1}. Zabýváme se blokovými kódy určité délky, kterou zpravidla budeme značit k. Vstupem jsou tedy prvky F k, což pro nás bude standardní vektorový prostor dimenze k. Každý vektor délky k je pak transformován na vektor délky n. Při transformaci ovšem nedostaneme všechny vektory délky n, ale jenom některé. Každé slovo, které může transformací vzniknout se nazývá kódové slovo a jejich sjednocení je kód, označíme ho C. Je-li C vektorovým podprostorem F n, mluvíme o lineárním [n, k] kódu. Protože za F jsme volili těleso F 2 = {0, 1}, jde o kód binární. Stejnou definici je možno použít i pro F = F 3, kdy mluvíme o kódu ternárním. Obecně pak q-ární lineární [n, k] kód je každý podprostor F n q, který má dimenzi k. Parametr n nazýváme délka a parametr k nazýváme dimenze. Pokud v dalším textu bez dalšího vysvětlení zmíníme [n, k] kód, bude se tím rozumět lineární binární kód. Chceme-li stručně naznačit, že jde o lineární q-ární kód, píšeme [n, k] q. Je paritní kód hexadecimálních číslic lineární? Množinu kódových slov můžeme zapsat jako {(ɛ 1,..., ɛ 5 ); ɛ 1 +... + ɛ 5 = 0}, a to jistě je vektorový podprostor F 5 2. Jde tedy o binární kód s parametry [5, 4]. Každý [n, k] kód C je plně určen k-ticí vektorů délky n, které udávají jeho generátory. Matice k n, jejíž řádky generují C, se nazývá generující matice. Paritní kód délky 5 má generující matici rovnou 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1. 2

Tato matice je tvaru (I A), kde I je jednotková matice řádu k (zde řádu 4). Takové generující matici se říká systematická, nebo také, že je ve standardním tvaru. Ať G = (I A) je generující matice nějakého [n, k] q kódu. Matice A je tedy rozměrů k k, kde k = n k. Ať g i = (0,..., 0, 1, 0,..., 0, a i1,..., a ik ) je i-tý řádek G. Je přirozené předpokládat, že vstupní vektor e i = (0,..., 0, 1, 0..., 0), který má 1 v i-té pozici, zakódujeme jako g i. Vstupní vektor u = (λ 1,..., λ k ) zakódujeme tudíž jako λ i g i, což je rovno u G. Generující matici lze tedy použít pro kódování. Například hexadecimální A se kóduje v paritním kódu jako 1 0 0 0 1 ( ) 1 0 1 0 0 1 0 0 1 0 0 1 0 1 = ( 1 0 1 0 0 ). 0 0 0 1 1 Kódování lineárních kódů lze tedy realizovat násobením matice a vektoru. Jak realizovat dekódování? Prvním krokem je určení takzvané paritní neboli kontrolní neboli prověrkové matice H. Pro q-ární [n, k] kód C je H maticí rozměrů k n, kde k = n k, jež splňuje u C Hu T = 0. Následující tvrzení bude formálně dokázáno až v další kapitole. Jde o standardní fakt, který bývá uváděn i v základních kurzech lineární algebry. Tvrzení 1.1. Ať (I A) je generující maticí ve standardním tvaru. Potom ( A T I) je prověrkovou maticí. Prověrkovou maticí paritního [5, 4] kódu je tedy matice 1 5 tvaru ( 1 1 1 1 1 ). Jestliže u je vyslané slovo a w je slovo přijaté, tak z Hw T 0 vyplývá, že při přenosu došlo k chybě. Slovo Hw T se nazývá syndrom a časem ukážeme, jak jej lze využít i pro případnou opravu. Nyní však potřebujeme vyjasnit, co to přesně znamená, že kód C zachycuje (detekuje) až r-násobné chyby a opravuje až s-násobné chyby. Pro u, v F n, kde F je těleso, položme Pro u F n, ať d(u, v) = {i; 1 i n, u i v i }. u = {i; 1 i n, u i 0}. Vidíme, že d(u, v) = u v. Hodnota d(u, v) se nazývá vzdáleností nebo Hammingovou vzdáleností vektorů u a v. Hodnota u se nazývá vahou vektoru u. 3

Lemma 1.2. Ať u, v, w F n. Pak d(u, v) + d(v, w) d(u, w). Důkaz. Ať R, S a T jsou po řadě množiny indexů i, kde u i v i, v i w i a u i w i. Jistě T R S, takže T R + S. Přitom T = d(u, w), R = d(u, v) a S = d(v, w). Vidíme, že Hammingova vzdálenost vytváří na F n metriku. Má tedy smysl definovat koule S(u, r) = {v F n ; d(u, v) r}, kde u F n je střed a r je poloměr. Minimální vzdáleností kódu C se rozumí min{d(u, v); u, v C, u v}. Tvrzení 1.3. Ať C je kód s minimální vzdáleností d. Pak C detekuje všechny r-násobné chyby právě když r < d, a C opravuje všechny r-násobné chyby právě když 2r < d. Důkaz. Ať je vysláno slovo v a přijato slovo w. K r-násobné chybě dojde právě když d(v, w) = r. Jestliže r je menší než d, tak nemůže dojít k tomu, aby w bylo považováno za kódové slovo, které by bylo odlišné od v. Proto z r < d plyne, že C detekuje všechny r-násobné chyby. Opravit chybu znamená jednoznačně určit nejbližší kódové slovo. Pokud by za nejbližší kódové slovo bylo možné vzít v v, tak máme r = d(v, w) d(v, w) a 2r d(v, w) + d(v, w) d(v, v ) d. Toto nemůže nastat, je-li 2r < d, takže v takovém případě lze r-násobné chyby jednoznačně opravit. Je-li naopak d 2r a r < d, tak lze zvolit v, v C a w taková, aby platilo d = (v, v ) = d(v, w) + d(v, w). Pak d r = d(v, w) d(v, w) r a v není možno odvodit z w jako jednoznačně určené nejbližší kódové slovo, což znamená, že chybu nelze jednoznačně opravit. Pro nenulový lineární [n, k] q kód C definujeme jeho minimální váhu jako min{ u ; u C, u 0}. Z d(u, v) = u v okamžitě plyne Tvrzení 1.4. Minimální vzdálenost nenulového lineárního kódu je rovna jeho minimální váze. Formálně se minimální váha nulového kódu délky n definuje jako n + 1. Máli [n, k] q kód minimální váhu d, hovoříme o [n, k, d] q kódu. Výše jsme slíbili zkonstruovat binární kód o 16 prvcích, který by opravoval jednonásobné chyby a detekoval až dvojnásobné chyby. Z Tvrzení 1.3 vidíme, že zadání vyhoví každý [7, 4, 3] kód. Vraťme se nyní k Fanově rovině. Je-li dán nějaký blok B {1,..., n}, tak jeho incidenční vektor i B je roven (ɛ 1,..., ɛ n ), kde ɛ i = 0, pokud i / B a ɛ i = 1, pokud i B. 4

Ať w je na chvíli binární vektor délky 7, který je tvořen samými jedničkami. Ať C je množina vektorů složená z nulového vektoru, jedničkového vektoru w a vektorů i B a w i B, kde B probíhá množinu všech bloků Fanovy roviny. Bloky označme: B 1 = {1, 2, 3}, B 2 = {3, 4, 5}, B 3 = {1, 5, 6}, B 4 = {1, 4, 7}, B 5 = {2, 5, 7}, B 6 = {3, 6, 7}, B 6 = {2, 4, 6}. Incidenční vektor bloku B i označme u i. Ať W je podprostor F n 2 generovaný vektory u 3, u 5, u 6 a w u 1, tedy lineární podprostor generovaný řádky matice G = 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 1. Lemma 1.5. Vektorový prostor W se shoduje s množinou C. Důkaz. Množiny W a C mají stejný počet prvků, neboť dim W = 4. Přitom w W, což lze ověřit součtem všech řádků matice G. Zbývá dokázat {u 2, u 4, u 7 } W. Ovšem u 2 = (0, 0, 1, 1, 1, 0, 0) = u 6 + (w u 1 ), u 4 = (1, 0, 0, 1, 0, 0, 1) = u 3 + (w u 1 ) a u 7 = (0, 1, 0, 1, 0, 1, 0) = u 5 + (w u 1 ). S využitím Tvrzení 1.1 můžeme tedy vyslovit Tvrzení 1.6. Kód C s generující maticí G je binární [7, 4, 3] kód. Jeho prověrková matice je rovna 1 1 0 1 1 0 0 H = 1 0 1 1 0 1 0. 0 1 1 1 0 0 1 Všimněme si, že ve sloupcích H se vystřídají právě všechny nenulové binární vektory délky 3. Binární Hammingův kód se nazývá každý binární kód, ke kterému lze najít prověrkovou matici s obdobnou vlastností. Jde-li o vektory délky l 2, dostáváme [2 l 1, 2 l l 1, 3] kód, což v obecnosti dokážeme až v další kapitole. Výše zkonstruovaný kód C odpovídá případu l = 3; budeme hovořit o základním Hammingově kódu. Při definici Hammingova kódu neurčujeme pořadí sloupců, jde jen o to, aby se vystřídaly všechny vektory. Obecně se kódy často definují až na pořadí souřadnic. Říká se, že kódy C 1 a C 2 délky n jsou permutačně ekvivalentní, jestliže existuje σ S n, že (u 1,..., u n ) C 1 (u σ(1),..., u σ(n) ) C 2. 5