Přidání 10. cvičení z TI

This commit is contained in:
Filip Znachor 2023-11-22 11:00:14 +01:00
parent 9f666cc656
commit 6767893b16
2 changed files with 243 additions and 0 deletions

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 134 KiB

View file

@ -0,0 +1,238 @@
**Př. 1**: $\mathbb{Z}_{5}$
$$
A = \begin{bmatrix}
1 & 4 & 1 & 1 & 1 \\
2 & 4 & 0 & 0 & 1 \\
0 & 2 & 1 & 1 & 1
\end{bmatrix}
\begin{matrix}
\cdot \space 2 \\
\cdot \space 1 \\
\cdot \space 4
\end{matrix}
$$
$$
u = \begin{bmatrix}
2 & 1 & 4
\end{bmatrix}^\text{T}
$$
Získání vektoru $v$:
- násobíme matici $A$ vektorem $u$
- $v = G^\text{T} \cdot u$
- vynásobíme řádky a sečteme sloupce
$$
\begin{bmatrix}
2 & 3 & 2 & 2 & 2 \\
2 & 4 & 0 & 0 & 1 \\
0 & 3 & 4 & 4 & 4
\end{bmatrix}
$$
$$
\begin{bmatrix}
4 & 0 & 1 & 1 & 2
\end{bmatrix}^\text{T}
$$
Kontrolní matice:
$$
H_{A} = \begin{bmatrix}
1 & 2 & 0 & 1 & 0 \\
1 & 2 & 1 & 0 & 0
\end{bmatrix}
$$
$$
H_{A} \cdot v = \begin{bmatrix}
0 & 0
\end{bmatrix}^\text{T}
$$
Chybový vektor:
$$
e = \begin{bmatrix}
0 & 2 & 0 & 0 & 0
\end{bmatrix}
$$
$$
w = v + e = \begin{bmatrix}
4 & 2 & 1 & 1 & 2
\end{bmatrix}^\text{T}
$$
Syndrom:
$$
s = H \cdot w = \begin{bmatrix}
4 & 4
\end{bmatrix}^\text{T}
$$
**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.
**Zakódování dat**:
- $u = \begin{bmatrix} 1 & 1 & 0 & 0 & 0 \end{bmatrix}^\text{T}$
- $v = \left[\begin{array}{cccccc:ccccc} 1 & 1 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 \end{array}\right]^\text{T}$
- pro zjištění druhé části $v$ sečteme první dva řádky matice $G_{R}$
**Jednoduchá chyba**:
- $e = \left[\begin{array}{ccccc:cccc} 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \end{array}\right]^\text{T}$
- $w = \left[\begin{array}{ccccc:cccc} 1 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 \end{array}\right]^\text{T}$
- $s = H_{R} \cdot w$
Pozn.: Při výpočtu sčítáme hodnoty ve sloupcích určených vektorem $w$ po jednotlivých řádcích, výsledkem je syndrom $s$.
$$
s = \begin{bmatrix}
1 & 0 & 0 & 0 & 0
\end{bmatrix}^\text{T}
$$
Pozn. 2: V případě jednoduché chyby je syndrom roven řádku kontrolné matice.
**Dvojitá chyba**:
- $e' = \left[\begin{array}{ccccc:cccc} 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 \end{array}\right]^\text{T}$
- $w' = \left[\begin{array}{ccccc:cccc} 1 & 1 & 0 & 0 & 1 & 1 & 1 & 1 & 0 & 0 \end{array}\right]^\text{T}$
$$
s' = \begin{bmatrix}
0 & 0 & 1 & 0 & 1
\end{bmatrix}^\text{T}
$$
Pozn.: Tento řádek v kontrolní matici nenajdeme.
**Př. 3**: Sdělovací kanál přenáší 120 binárních znaků za sekundu. Zdroj generuje 100 binárních znaků za vteřinu. Navrhněte lineární binární kód, který umožní opravovat jednoduché chyby.
Řešení: Hammingův kód vyhovující podmínce $2^r = k + r + 1$.
H. kód (7, 4) - 4 informační
- $100$ znaků/s $\implies 25$ znaků/s $\implies 25 \cdot 7$ znaků/s $= 175$ znaků/s
- kanál tento přenos nezvládne
| r | k | n | $2^r$ | k/n |
| --- | --- | --- | ----- | ------------------ |
| 3 | 4 | 7 | 8 | 0.57 |
| 4 | 11 | 15 | 16 | 0.73 |
| 5 | 26 | 31 | 32 | 0.838 $\geq 0.833$ |
Redundance $\rho = 1-\frac{k}{n}$
- $\frac{k}{n}$ - informační poměr
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.
Řešení: opakovací kód s počtem opakování 7
$$
G = \left[\begin{array}{ccc:c}
1 & 0 & 0 & 111111 & & \\
0 & 1 & 0 & & 111111 & \\
0 & 0 & 1 & & & 111111
\end{array}\right]
$$
šířka: 21, výška: 3