2.1 Korekční a detekční kódy (2/2)

Při volbě a použití zabezpečení je dobré vědět, jaká je detekční, příp. korekční schopnost kódu. Obyčejné rovnoměrné dvojkové kódy se vyznačují tím, že obvykle využívají všechny možné binární kombinace, tzv. kódové složky, kterých je L = 2n, kde n je počet dvojkových míst tj. délka kódového slova. Vybráním určitých složek vytvoříme zkrácený kód (L´<L), čímž vytváříme redundanci, která je nutná k detekci a korekci chyb.

Počet stejnolehlých míst, na kterých se vzájemně liší dvě kódové složky se nazývá vzdálenost kódových složek a označuje se termínem Hammingova vzdálenost. Nejmenší vzdálenost složek, která se vyskytuje v daném kódu, se pak nazývá minimální vzdálenost nebo kódová vzdálenost d0.

Označíme-li ED počet chyb, které může kód detekovat, EC počet chyb, které může kód korigovat (opravit), potom platí následující vztahy:

Počet detekovaných chyb bude

E_D  \le d_0  - 1

Počet opravitelných chyb bude

E_C  \le \left\{ \frac{1}{2} \left( {d_0 - 1} \right) \qquad {{\rm  - pro } d_0 {\rm  lich\acute{e} }} \\ \frac{1}{2} \left( {d_0 - 2} \right) \qquad {{\rm  - pro } d_0 {\rm  sud\acute{e} }}

V praxi obvykle hledáme potřebnou délku kódových slov n. Známe požadovaný stupeň zabezpečení vyjádřený délkou bloku a počtem chyb, které žádáme detekovat příp. opravit, tj. minimální vzdálenost kódu d0. Z kombinačního počtu pro délku zkráceného kódu tj. počet použitelných n-bitových slov vyplývá např.:

{\rm pro} \qquad d_0 = 3 \qquad {\rm je} \qquad L' \le \frac{{2^n }}{{1 + n}}

{\rm pro} \qquad d_0 = 4 \qquad {\rm je} \qquad L' \le \frac{{2^{n-1} }}{{n}}

Z toho můžeme určit hledaný počet bitů v kódovém slově pro zadané d0 a .

Příklad 2.1:
Pro vstupní nezabezpečenou binární posloupnost rozdělenou na osmibitové bloky (n1=8) máme určit délku kódových slov n2 pro bezpečnostní kód, který má korigovat jednu chybu ve slově.
Délka vstupního kódu je L_1  = 2^{n_1 }  = 2^8  = 256{\rm  }
Požadované zabezpečení splní zkrácený kód s kódovou vzdáleností d0 = 3. Tomu odpovídá délka zkráceného kódu:
L_2  \le \frac{{2^n }}{{1 + n}} a dále musí být L'_2  \ge L_1  = 256
Těmto nerovnicím vyhovuje volba n2 = 12 tj. dvanácti-prvkový kód.
V tom případě bude délka zkráceného kódu L_2  \le \frac{{2^n }}{{1 + n}} = \frac{{2^{12} }}{{1 + 12}} = 315{\rm  slov}.
Překódováním osmibitových slov na dvanáctibitová získáme možnost opravy jednoho bitu z osmi.