Treti prednaska z Kodovani a sifrovani

Zaklady teorie kodovani

Obsah

Uzivatelska definice kodu

Kodovanim zpravy rozumime jeji zmenu, ktera obvykle zpravu prodlouzi a zajisti jeji prenos bezpecnejsim zpusobem (oproti naruseni vnejsimi vlivy - sum atp.).
Obecne schema prenosu zpravy
zdroj zpravy -> kodovani -> vysilac -> sum -> prijimac -> dekodovani -> prijemce zpravy.

Algerbraicka definice kodu

Pro jednoduchost budeme uvazovat kody nad dvouprvkovou abecedou 0,1. Podobne definice a uvahy se daji provadet pro libovolnou abecedu, nad jejimiz prvky lze definovat operace nasobeni a scitani tak, aby vysledna struktura tvorila teleso. Netrivialni algerbaicky vysledek rika, ze takova abeceda musi mit p^n prvku, kde p je prvocislo.
Blokovy kod
Blokovym kodem stupne n nazveme libovolnou mnozinu n-tic prvku vstupni abecedy 0,1.
Linearni kod
Linearnim (n,k)-kodem nazveme linearni podprostor K dimenze k prostoru {0,1}^n. Prvky tohoto prostoru chapeme jako "povolena" kodova slova (je jich 2^k). Kazde toto slovo je posloupnost n nul a jednicek. Ukolem dekoderu je pro libovolny prvek prostoru {0,1}^n predstavujici zasumene prijate slovo najit nejblizsi prvek kodoveho podprostoru K.
Prenosovy pomer
je pomer delky nezakodovane zpravy a zpravy zakodovane. U linearnich (n-k)-kodu je na zakodovani informace delky k potreba vyslat posloupnost n znaku a prenosovy pomer kodu je tedy k/n.
Vaha kodu
Vaha slova je pocet jeho nenulovych slozek. Vaha kodu je minimalni vaha jeho nenulovych slov.
Hammingova vzdalenost
Hammingovou vzdalenosti dvou slov u a v rozumime vahu slova u-v, tedy pocet mist, na kterych se slova u a v lisi. Hammingova vzdalenost splnuje axiomy metriky. Uloha dekodovani zni nalezt pro dane slovo u z {0,1}^n prvek v z kodoveho podprostoru K, ktery ma od u nejmensi Hammingovu vzdalenost. Pokud je takovy prvek urcen jednoznacne, rikame, ze chyba vznikla pri prenosu je opravitelna.
Opravovani chyb
Rikame, ze linearni kod je schopen opravovat t chyb, pokud pro kazdy prvek prostoru u {0,1}^n, ktery ma od nejakeho kodoveho slova v kodu K Hammingovu vzdalenost mensi nebo rovnu t, neexistuje jine kodove slovo v' z K, ktere by od u melo Hammingovu vzdelenost tez mensi nebo rovnu t. Jinymi slovy, dekodovani slov, u kterych doslo pri prenosu k maximalne t chybam je jednoznacne. Plati, ze pokud je d vaha kodu K a t<2d, pak kod K je schopen opravovat alespon t chyb.
Generujici matice
Necht K je (n,k)-linearni kod. u1, u2, ..., uk je libovolna baze tohoto kodu. Pak matice A velikosti n krat k, kde jsou v jednotlivych radcich pod sebou napsany vektory u1,u2, ..., un se nazyvy generujici matice kodu.
Proverkova matice
Necht K je (n,k)-linearni kod. Matice B velikosti (n-k,n) takova, ze jeji radky jsou linearne nezavisle a ze pro kazde kodove slovo v z K plati Bv=0 se nazyva proverkova matice kodu K.
Syndrom
Necht K je (n,k)-linearni kod, B jeho proverkova matice a u libovolne slovo z {0,1}^n. Slovo B.u (jeho delka je n-k) se nazyva syndrom slova u pro kod K. Slova s nulovym syndromem jsou prave kodova slova kodu K.
Dualni kod
Necht K je (n,k)-linearni kod, A jeho generujici matice a B jeho proverkova matice. Kod K', ktery ma B za generujici matici a A za proverkovou matici se nazyva dualni kod ke kodu K. Jedna se skutecne o dualitu, dualni kod ke kodu K' je opet kod K.

Opakovaci binarni kod

Opakovaci kod radu 3 ma obsahuje slova (0,0,0) a (1,1,1). Je to (3,1)-linearni kod. Jeho generujici matice je velikosti 3x1
111
proverkova matice je velikosti 3x2
101
110
Vaha kodu je 3, kod je schopen opravovat 1 chybu. Kapacita kodu je 1/3.

Opakovaci kod radu 5 ma obsahuje slova (0,0,0,0,0) a (1,1,1,1,1). Je to (5,1)-linearni kod. Jeho generujici matice je velikosti 5x1
11111
proverkova matice je velikosti 5x4. Vaha kodu je 5, kod je schopen opravovat 2 chyby. Kapacita kodu je 1/5.

Dalsi priklad

Priklad (6,3)-kodu. Generujici matice je
111000
100 110
010 101

Proverkova matice je
110 100
101 010
011 001

Vaha kodu je 3, kod opravuje jednu chybu, prenosovy pomer je 1/2. Dualni kod ma stejne vlastnosti ((6,3)-kod, vaha 3, opravuje 1 chybu, prenosovy pomer 1/2).

Hammingovy kody

Hamminguv kd radu n je (2^n-1,2^n-n-1) kod, jehoz proverkova matice vznikne tak, ze se do sloupcu napisou nenulove vektory delky n.

Takovych vektoru je 2^n-1, proverkova metice ma tedy n radku a 2^n-1 sloupcu. Generujici matice ma 2^n-1 sloupcu a 2^n-1-n radku.

Hammingovy kody maji vahu 3 a opravuji 1 chybu (bez dukazu - plyne to z obecnych algebraickych vet). Jejich prenosovy pomer je rovna (2^n-1-n)/2^n-1 a se zvysujicim n se tedy zvysuje k 1. Timto zpusobem je tedy mozne sestrojit kod s libovolnym prenosovym pomerem (mensi nez 1), ktery opravuje 1 chybu. Ovsem za cenu velmi sloziteho kodovani a dekodovani pri vysokem n.

Hamminguv kod radu 2 je opakovaci kod radu 3.

Hamminguv kod radu 3 ma proverkovou matici velikosti 7x3
1110 100
1101 010
1011 001

Genrujici matice je velikosti 7x4, napr.
1100 001
1010 010
1001 100
0111 000

Je to (7,4)-kod, ktery ma vahu 3, opravuje 1 chybu a ma prenosovy pomer 4/7.


Tuto stranku vytvoril Tomas Vanicek a jedna se o soucast volitelnych prednasek z Kodovani a sifrovani pro vsechny obory Stavebni fakulty Ceskeho vysokeho uceni technickeho v Praze.