**Př. 2**: Navrhněte binární lineární kód, který umožní zakódovat šestiprvkové informační části tak, aby bylo možné **současně** opravovat jednoduché a detekovat dvojité chyby.
Pozn.: Musíme vyjít od toho, jakou musí mít kód minimální Hammingovskou vzdálenost $d_{0}$. Potom si uvědomíme, jestli existují nějaké standardní kódy, které to splňují. Pokud neexistují, tak použijeme opakovací kód.
Požadavky:
- jednoduchá chyba - opravit
- dvojitá chyba - detekovat
Použitelné kódy:
- $d_{0} = 1 \dots$ _nedává smysl_
- $d_{0} = 2 \dots$ parita
- $d_{0} = 3 \dots$ Hammingův kód (i zkrácený)
- $d_{0} = 4 \dots$ rozšířený Hammingův kód (i zkrácený)
- $d_{0} \geq 5 \dots$ opakovací kód
$$
e_{i} = \begin{bmatrix}
0 & \dots & 0 & 1 & 0 & \dots & 0
\end{bmatrix}^\text{T}
$$
$$
s = H \cdot w = H \cdot (v + e_{i}) = H \cdot v + H \cdot e_{i} = H \cdot e_{i} = H_{0,i}
$$
$$
H = \left[\begin{array}{c:c}
-B^\text{T} & I_{n-k}
\end{array}\right]
$$
- v matici $H$ jsou sloupce s více než jednou jedničkou
$$
G = \left[\begin{array}{c:c}
I_{k} & B
\end{array}\right]
$$
- v $B$ alespoň dvě jedničky
Opravování jednonásobných chyb:
- $k = 6$ (počet informačních prvků)
- počet syndromů $2^r \geq 1 + k+r$
- 1 syndrom pro bezchybný přenos
- $k+r$ syndromů pro každý prvek
- $r = n-k$
Hledání $r$:
- $2^r \geq 1 + 6 + r$
- $2^r \geq r + 7$
- $r = 4$
$$
G = \left[\begin{array}{cccccc:cccc|c}
1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 \\
0 & 1 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 1 \\
0 & 0 & 1 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 1 \\
0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 \\
0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 1 \\
0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 1
\end{array}\right] \quad \begin{matrix}
3 \\
5 \\
6 \\
7 \\
9 \\
10
\end{matrix}
$$
Pozn.: Při vyplňování druhé části matice začínáme číslem 3 a nesmíme přidávat mocniny 2. Přidáme poslední sloupec, který je paritní, díky němuž můžeme detekovat dvojnásobné chyby.
Vytvoříme **kontrolní matici**:
$$
H_{R} = \left[\begin{array}{cccccc:ccccc}
0 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 & 0 & 0 \\
0 & 1 & 1 & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\
1 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 0 \\
1 & 1 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1 & 0 \\
1 & 1 & 1 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1
\end{array}\right]
$$
$$
H = \left[\begin{array}{cccccc:cccc:c}
0 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 & 0 & 0 \\
0 & 1 & 1 & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\
1 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 0 \\
1 & 1 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1 & 0 \\
1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1
\end{array}\right]
$$
Přidáváme poslední řádek jedniček a poslední sloupec nul.
Potřebujeme informační poměr lepší než $\frac{k}{n} \geq \frac{100}{120} = 0.833$.
Počet informačních znaků vygenerovaných za jednotku času ... $k = 100$
Počet znaků po zakódování ... $n = 120$
**Př. 4**: Navrhněte lineární kód, který umožní kódovat tříprvkové informační části tak, aby bylo možné **současně** opravovat dvojité a detekovat čtyřnásobné chyby.