Hammingovy kódy konstrukce Fanova rovina charakteristický vektor šifrování princip generující a prověrková matice dekódování H.kódů
třída lineárních binárních kódů s A n, 3 n = délka kódu, d = distance kódu schopnost opravovat 1 přenosovou chybu tj. n, k, 3 -kód Tvrzení: Nechť H je kontrolní matice lineárního kódu C. Pak distance kódu = maximální číslo c, pro které platí: každých c-1 sloupců matice H je lineárně nezávislých. každé slovo x = x 1 x n C určuje LK sloupců matice H i=1 x i h i = 0 váha slova x = počet nenulových sčítanců každých c sloupců matice H je LN C neobsahuje slova váhy c n
Věta: Pro každé r 2 má Hammingův kód parametry 2 r 1, 2 r r 1, 3 distance d=3 matice nad F 2 neobsahují LZ dvojice sloupců» dva sloupce jsou LZ nad F 2 oba jsou shodné nebo jeden nulový matice má r řádků volíme sloupce 2 r 1 nenulových vektorů v F 2 r kód H r (matice G) má délku n = 2 r 1 dimenze k = dim H r = n r = 2 r r 1
konstrukce: cíl: vytvořit co největší binární kód s distancí d = 3 matice nad F 2 nesmí obsahovat lin. závislé dvojice sloupců dva vektory jsou lin. závislé jsou shodné nebo jeden z nich je nulový max. rozdíl v počtu sloupců a řádků rozdíl = dimenze kódu k kód H r generující matice G má r řádků 2 r 1 nenulových sloupců v prostoru F 2 r délka kódu n = 2 r 1 dimenze dim H r = n r = 2 r r 1» jiné pořadí sloupců v G = ekvivalentní kód
konstrukce: pomocí hypergrafu Fanovy roviny X, P 7 nejmenší projektivní rovina řádu 2 nad tělesem Z 2 popisuje multiplikativní strukturu oktonionů obsahuje 7 bodů a 7 přímek X = 1,2,3,4,5,6,7 P = 1,2,5, 1,3,6, 1,4,7, 2,3,7, 2,4,6, 3,4,5, 5,6,7 axiomy: každé dva různé body leží na právě jedné přímce každé dvě různé přímky se protínají právě v jednom bodě 4 6 1 2 5 existují alespoň 4 různé body, z nichž žádné tři neleží na přímce existují alespoň 4 různé přímky, z nichž žádné tři se neprotínají ve stejném bodě 3
konstrukce: charakteristický vektor vektor 7 nul a jedniček 1 na i-té pozici i P X» 1,2,5 1100100» 1,3,6 1010010» 1,4,7 1001001» 2,3,7 0110001» 2,4,6 0101010» 3,4,5 0011100» 5,6,7 0000111 7 4 6 3 1 2 5 prvky vektorového prostoru F 2 7 nad tělesem F 2 F 2 = 0,1, n = 7, H 3 = 16 = 2 4, k = 4, d = C = 3» 7, 4, 3 -kód
konstrukce: kódová slova H F 2 7 platí: 7 přímek 7 doplňků 2 konstantní vektory celkem 16 slov každá 2 kódová slova se liší alespoň ve 3 souřadnicích pro každý vektor F 2 7 existuje právě jedno kódové slovo, které se od něj liší v nejvýše jedné souřadnici tj. pokud se při přenosu změní nejvýše 1 bit, lze jej opravit 1100100, 0011011, 1010010, 0101101, 1001001, 0110110, 0110001, 1001110, 0101010, 1010101, 0011100, 1100011, 0000111, 1111000, 0000000, 1111111
šifrování kódová slova seřadit nějak tj. v 0,, v 15 bloky velikosti 4 bity čísla 0 15 posíláme odpovídající kódové slovo např. místo 0010 poslat v 2 = 0011011 v 0 = 0000000, v 1 = 0000111, v 2 = 0011011, v 3 = 0011100, v 4 = 0101010, v 5 = 0101101, v 6 = 0110001, v 7 = 0110110, v 8 = 1001001, v 9 = 1001110, v 10 = 1010010, v 11 = 1010101, v 12 = 1100011, v 13 = 1100100, v 14 = 1111000, v 15 = 1111111 hustota kódu α H 3 = 4 7 kódování prodlouží zdrojový text délky n na délku 1 α H 3 = 7 4 n
šifrování kódová slova pst: prodloužení jen o 3 4 délky n = 100, p = 0,01 P = 1 p = 0,99 pst přijetí bitu bez chyby P = 1 p 7 + 7p 1 p 6 = 1 p 6 1 + 6p = 0,998 pst přijetí sedmice bitů s maximálně 1 chybou v 0 = 0000000, v 1 = 0000111, v 2 = 0011011, v 3 = 0011100, v 4 = 0101010, v 5 = 0101101, v 6 = 0110001, v 7 = 0110110, v 8 = 1001001, v 9 = 1001110, v 10 = 1010010, v 11 = 1010101, v 12 = 1100011, v 13 = 1100100, v 14 = 1111000, v 15 = 1111111 P = 1 p 6 1 + 6p n 4 = 1 p 3n 2 1 + 6p n 4 = 0,950 pst přijetí celé zprávy bez chyby je 95%
šifrování generující matice G libovolná čtveřice nenulových slov 0 0 0 0 1 1 1 např. G = 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0» velikost 4 x 7 prověrková matice H platí: G x T = 0 0 1 1 0 1 1 0 např. H = 0 0 1 1 0 1 1 1 1 0 0 0 1 1» velikost 3 x 7 v 0 = 0000000, v 1 = 0000111, v 2 = 0011011, v 3 = 0011100, v 4 = 0101010, v 5 = 0101101, v 6 = 0110001, v 7 = 0110110, v 8 = 1001001, v 9 = 1001110, v 10 = 1010010, v 11 = 1010101, v 12 = 1100011, v 13 = 1100100, v 14 = 1111000, v 15 = 1111111
šifrování generující matice G libovolná čtveřice nenulových slov např. G = 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 v 0 = 0000000, v 1 = 0000111, v 2 = 0011011, v 3 = 0011100, v 4 = 0101010, v 5 = 0101101, v 6 = 0110001, v 7 = 0110110, v 8 = 1001001, v 9 = 1001110, v 10 = 1010010, v 11 = 1010101, v 12 = 1100011, v 13 = 1100100, v 14 = 1111000, v 15 = 1111111» pro volbu v 1, v 3, v 12, v 4 LK 0000111 a 0011100» je 0011011 LK předchozích a 1100011» je 1100100, 1111111, 1111000 LK předchozích a 0101010» je 0101101, 0110110, 0110001, 1001001, 1001110, 1010101, 1010010
šifrování prověrková matice H platí: G x T = 0 h 0 = 0000000, h 1 = 0110110, h 2 = 0011011, h 3 = 0101101, h 4 = 1100011, h 5 = 1010101, h 6 = 1111000, h 7 = 1001110 0 0 0 0 1 1 1 x 5 + x 6 + x 7 = 0 G = 0 0 1 1 1 0 0 x a tedy 3 + x 4 + x 5 = 0 1 1 0 0 0 1 1 x 1 + x 2 + x 6 + x 7 = 0 0 1 0 1 0 1 0 x 2 + x 4 + x 6 = 0» pro volbu x 2, x 6, x 7 0,1 dopočteme x 1, x 3, x 4, x 5 0,1 0 1 1 0 1 1 0 např. H = 0 0 1 1 0 1 1 1 1 0 0 0 1 1 LK 0110110 a 0011011» je 0101101 LK předchozích a 1100011» je 1010101, 1111000, 1001110
obecný algoritmus tabulka reprezentantů tříd počet tříd je exponenciální v tomto případě 2 n k = 2 2r 1 2 r r 1 = 2 r = n + 1» tj. 2 7 4 = 2 3 = 7 + 1 = 8» celkem slov 27 8 = 128 8 = 16 syndrom reprezentant + další slova 000 (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() 001 (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() 010 (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() 011 (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() 100 (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() 101 (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() 110 (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),() 111 (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),()
jednodušší algoritmus prověrková matice H d = 3 sloupce = čísla od 1 do 2 r 1 uspořádáme (ekvivalentní kód) předpoklad = při přenosu max. 1 chyba w e 1 syndrom H e T? e = 0 0 e = syndrom H e T = H x = 0, přijaté slovo x = x je kódové slovo C 0 1 0 s 1 na pozici i syndrom H e T = H x je i-tý sloupec matice H» binární zápis čísla i změníme i-tý bit slova x, ostatní ponecháme
dešifrování dekódujte slovo: x = 1101011, prověrková matice H h 0 = 0000000, h 1 = 0110110, h 2 = 0011011, h 3 = 0101101, h 4 = 1100011, h 5 = 1010101, h 6 = 1111000, h 7 = 1001110 H x = x = 1100011 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 = 0 1 0 v 0 = 0000000, v 1 = 0000111, v 2 = 0011011, v 3 = 0011100, v 4 = 0101010, v 5 = 0101101, v 6 = 0110001, v 7 = 0110110, v 8 = 1001001, v 9 = 1001110, v 10 = 1010010, v 11 = 1010101, v 12 = 1100011, v 13 = 1100100, v 14 = 1111000, v 15 = 1111111
Hammingův kód H 3 vytvořte generující matici G určete velikost, dimenzi, distanci kódu vypočtěte prověrkovou matici H určete tabulku reprezentantů dekódujte slova: 1001110, 0100010,
obdoba Hammingův kód nad tělesem F q kód n, n r, 3 r 2 n = qr 1 q 1