Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verze | |||
| msz:kodovani_shannonova_veta_o_kodovani_bezpecnostni_kody [16. 06. 2012, 09.27:49] – [Shannonova věta o kódování] pitel | msz:kodovani_shannonova_veta_o_kodovani_bezpecnostni_kody [04. 09. 2026, 20.19:30] (aktuální) – odstraněno - upraveno mimo DokuWiki (Neznámé datum) 127.0.0.1 | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| - | ====== Kódování, | ||
| - | ===== Kódování ===== | ||
| - | [[wp> | ||
| - | Kódování převádí informace jednoho typu do jiné reprezentace. Například morseovka. | ||
| - | |||
| - | Neplést si s šifrováním! U kódování je známo jak se to převádí, u šifrování ne. | ||
| - | ===== Shannonova věta o kódování ===== | ||
| - | [[wp> | ||
| - | |||
| - | Má-li diskrétní kanál kapacitu //C// > 0, pak použitím dostatečně dlouhých kódovaných úseků lze produkce informace // | ||
| - | * Rychlost produkce informace: // | ||
| - | * // | ||
| - | * //T// -- průměrný čas vysílání jednoho symbolu: //T// = 1 / //vₘ// | ||
| - | * //vₘ// -- modulační rychlost | ||
| - | ===== Bezpečnostní kódy ===== | ||
| - | [[wp> | ||
| - | |||
| - | Pokud se zprávy posílají po nespolehlivém médi na kterém vznikají chyby, používají se bezpečnostní kódy. Tyto kódy umožňují chybu detekovat, a ideálně i opravit. Slovo s bezpečnostním kódem musí být vždy delší než původní slovo, dochází k redundanci. | ||
| - | ==== Lineární ==== | ||
| - | [[wp> | ||
| - | |||
| - | Lineární bezpečnostní kód je takový kód, kde libovolná lineární kombinace kódových slov je také kódové slovo. | ||
| - | ==== Hammingovy ==== | ||
| - | {{ http:// | ||
| - | [[wp> | ||
| - | |||
| - | Hammingův kód (7, 4) znamená že ze 4 bitů zprávy vytvoříme 7 bitů přídáním 3 paritních bitů. Tento kód umožňuje detekovat 2 chybné bity a 1 bit opravit. Paritní a datové pity jsou uspořádány: | ||
| - | |||
| - | Potřebujeme generovací matici //G// a paritní matici //H//: | ||
| - | |||
| - | <m>G = (matrix{7}{4}{1 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1})</ | ||
| - | |||
| - | <m>H = (matrix{3}{7}{1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1})</ | ||
| - | |||
| - | Všimněte si u matice //G//, že řádky 3, 5, 6 a 7 reprezentují datové bity a obsahují jen jednu 1. Oproti tomu řádky 1, 2 a 4 jsou bity paritní, a označují ze kterých bitů se bude parita počítat. | ||
| - | |||
| - | < | ||
| - | |||
| - | Výslednou zprávu získáme vynásobením matice //G// zprávou ('' | ||
| - | |||
| - | < | ||
| - | |||
| - | Výsledná zpráva tedy bude '' | ||
| - | |||
| - | <note tip> | ||
| - | ---- | ||
| - | Při kontrole vynásobíme matici //H// zprávou: | ||
| - | |||
| - | < | ||
| - | |||
| - | Opět můžeme použít trik se stejnými jedničkami. | ||
| - | |||
| - | Pokud vyjdou samé nuly, byla zpráva přijata v pořádku. | ||
| - | |||
| - | Pokud ne, porovnáme matici se sloupci matice //H// a ten u kterého se shoduje je chybný bit. Stejně tak můžeme binární čislo přečíst odzhora. Například '' | ||
| - | ==== Cyklické ==== | ||
| - | [[wp> | ||
| - | <note important> | ||
| - | |||
| - | {{ http:// | ||
| - | Zakódování '' | ||
| - | < | ||
| - | 11010011101100 000 <--- ke vstupu přidáme 3 bity | ||
| - | 1011 < | ||
| - | 01100011101100 000 <--- výsledek | ||
| - | | ||
| - | 00111011101100 000 | ||
| - | 1011 | ||
| - | 00010111101100 000 | ||
| - | 1011 | ||
| - | 00000001101100 000 | ||
| - | 1011 | ||
| - | 00000000110100 000 | ||
| - | 1011 | ||
| - | 00000000011000 000 | ||
| - | 1011 | ||
| - | 00000000001110 000 | ||
| - | 1011 | ||
| - | 00000000000101 000 | ||
| - | 101 1 | ||
| - | ----------------- | ||
| - | 00000000000000 100 < | ||
| - | </ | ||
| - | |||
| - | Zbytek připojíme za zprávu: '' | ||
| - | ---- | ||
| - | {{ http:// | ||
| - | Při kontrole postupujeme stejně, zbytek musí vyjít '' | ||
| - | < | ||
| - | 11010011101100 100 <--- vstup s CRC | ||
| - | 1011 < | ||
| - | 01100011101100 100 <--- vysledek | ||
| - | | ||
| - | 00111011101100 100 | ||
| - | |||
| - | ...... | ||
| - | | ||
| - | 00000000001110 100 | ||
| - | 1011 | ||
| - | 00000000000101 100 | ||
| - | 101 1 | ||
| - | ------------------ | ||
| - | 0 <--- zbytek | ||
| - | </ | ||
| - | ==== Konvoluční ==== | ||
| - | {{ http:// | ||
| - | [[wp> | ||
| - | |||
| - | U konvolučního kódu je každý bit nahrazen //n//-ticí bitů. Ke kódování potřebujeme paměťové buňky a '' | ||
| - | |||
| - | Na začátku obsahují všechny buňky '' | ||
| - | |||
| - | To je také možné reprezentovat konečným automatem. Stavy jsou možné stavy pamětí, přechody podle dalšího bitu generují //n//-tice. | ||
| - | |||
| - | Průchod takovým automatem je mopžné vyjádřit Trellis diagramem. | ||
| - | |||
| - | {{http:// | ||