Informatika Kódování Radim Farana Podklady předmětu Informatika pro akademický rok 27/28 Obsah Základy pojmy diskrétních kódů. Druhy kódů. Nejkratší kódy. Detekce chyb, Hammingova vdálenost. Kontrolní a samoopravné kódy. Lineární kódy. Cyklické kódy. Kód Popis přiřaení kódových slov jednotlivým právám (kódová kniha). Kódové je posloupnost naků použité abecedy. Abeceda je množina naků (binární abeceda Z 2 = {, }) Minimální délka ho slova: N * (x) = - log 2 (P(x)) [bit]
Vlastnosti kódu prosté kódování: růným právám odpovídají růná kódová slova, jednonačná dekódovatelnost: e nalosti akódované právy le jednonačně určit právu drojovou, Kód K : A B musí být prostým obraením. Problém dekódování Zpráva Kód A Posloupnost práv (kódových slov): nele jednonačně dekódovat Kód B Posloupnost práv (kódových slov): le jednonačně dekódovat? Ano, ale jen odadu, po přijetí celé posloupnosti práv. Kód C Posloupnost práv (kódových slov): můžeme dekódovat on-line. Důvod? Žádné není ačátkem jiného ho slova (prefixem). Druhy kódů Prefixový kód je prosté kódování u kterého žádné není ačátkem jiného ho slova. Blokový kód je prosté kódování u kterého mají všechna kódová slova stejnou délku (počet naků). Protože musí být prostým obraením, je nutně také prefixovým kódem. 2
Použití kódů Nejkratší (optimální) kódy R, L min, Bepečnostní kódy detekční kódy (odhalují chyby), samoopravné kódy (opravují chyby), Speciální kódy kódy konstantní měny (Grayův kód), čárové kódy, alfanumerické kódy, číselné kódy (datové formáty), Nejkratší kódy Pokud má R, neboli L min, pak N(i) N * (i) pro i =, 2, n. Hledáme vhodný algoritmus konstrukce takového kódu: Huffmanův kód (952), Shannonův kód. Algoritmy se liší, stejně tak i dosažené výsledky, Huffmanův kód se snáe algoritmiuje a tedy také realiuje Huffman, David A. * 925, USA + 7.. 999 California, USA http://www.ucsc.edu/currents/99-/-/huffman.html Huffmanův kód Triviální případ Zpráva P(i) kód > 2 < Redukovaná abeceda Zpráva P(i) redukce kód expane» 2 > 2,3 3 < Příklad Zpráva A B C D E P(i),4,3,,,.redukce,4,3,2, 2.redukce,4,3,3 3.redukce,6,4 naky kód Postup: seřaení podle pravděpodobnosti, postupná redukce a oprava pořadí, přiřaení naků, a pětná expane. Problémy: definice pořadí práv pro stejnou P(i), ařaení skupin se stejnou P(i), pořadí přiřaení naků,. 3
Detekce chyb Množinu všech slov rodělíme na slova kódová a slova nekódová. t-násobná chyba mění na ne, pokud se dvě kódová slova liší ve více než t nacích. Hammingova vdálenost je počet naků ve kterých se dvě kódová slova liší. Hammingova vdálenost kódu d je nejmenší nich. Hammingova vdálenost nekódová slova d = d = Hamming, Richard Wesley *. 2. 95 Chicago, Il. USA + 7.. 998 Monterey, Cal. USA http://cm.bell-labs.com/cm/cs/alumni/hamming/ Kód odhaluje t-násobné chyby, pokud je Hammingova vdálenost kódu d > t. Onačení kódů (blokových): (n, k)-kód počet naků počet informačních naků (4, 3)-kód má jeden kontrolní nak, je schopen mít d = 2. Opravování chyb nekódová slova d = d = d = 3 d = 2 Kód opravuje t-násobné chyby, pokud je Hammingova vdálenost kódu d > 2.t. 4
Lineární kódy (maticové kódy) Kódové chápeme jako řádkový vektor v = [ ]. Lineární kombinací libovolného počtu kódových slov vnikne opět. Kód je možno popsat pomocí generující matice (kterou tvoří báe kódu). G = v =.G Systematické kódy Informační tvoří ačátek ho slova. G = E B Určení informačního slova (dekódování) je triviální. Je možno snadno určit kontrolní matici T kódu H = -B E A syndrom přijatého slova s = H.v T Nenulový syndrom indikuje chybu. Hammingovy kódy Opravují jednoduché chyby a jsou perfektní = při daných vlastnostech mají minimální možnou redundanci. Kód s m kontrolními naky (m = 2, 3, ) má délku n = 2 m. Sloupce kontrolní matice tvoří binární rovoj čísel, 2,, 2 m - Nenulový syndrom je binárním rovojem poice chyby. 5
Cyklické kódy (polynomické kódy) Jsou podtřídou lineárních kódů. Kódové chápeme jako ápis polynomu. Cyklickým posunem naků ho slova vnikne opět. Kromě generující matice mohou být popsány také generujícím polynomem. Jsou schopny dobře detekovat (opravovat) i shlukové chyby. Realiace cyklických kódů Informační dělíme generujícím polynomem, určíme bytek po dělení, bytek připojíme a informační. Celé je dělitelné generujícím polynomem bee bytku. Pod onačením CRC-kódy (Cyclic Redundance Code) mají široké použití Typické CRC kódy počet kontrolních bitů onačení generující polynom použití 8 LRCC 8 8 + kontrolní Byte je součet datových Byte modulo 2 2 CRC 2 2 3 2 + používá se pro šestibitové naky LCRC + kontrolní součet dvojic Byte (Word) modulo 2 CRC 5 2 + binární synchronní protokol CRC reverní 4 + SDLC 2 5 + linkový protokol IBM, standard CCITT SDLC reverní 4 + 32 CRC 32 + Ethernet, HDLC, ZMODEM 32 26 23 22 2 + 8 7 5 4 + 2 + 6