2.3 Realizace zabezpečení cyklickým kódem

I když předchozí výklad principů cyklického kódu se může zdát složitý, je vlastní realizace zabezpečení cyklickým kódem celkem jednoduchá. Všechny uvedené operace při kódování a dekódování lze realizovat zpětnovazebním posuvným registrem, jehož struktura zpětných vazeb je plně určena zvoleným generujícím mnohočlenem G(D). na obr. 2.1 je uveden příklad kodéru s generujícím mnohočlenem G(D) = D3 + D2 + 1. Všechny operace jsou v aritmetickém modulu 2, který generuje posloupnost r = 5 zabezpečovacích bitů ej.

Obr. 2.1 – Kodér pro zabezpečení cyklickým kódem r = 5 (CRC-5)

Uvedená struktura realizuje dělení každého vstupního mnohočlenu zprávy A(D) generujícím mnohočlenem G(D), který je pevně určen strukturou zpětných vazeb. Před kódováním bloku zprávy se posuvný registr vynuluje. Spínač P2 je sepnut, přepínač P1 je v poloze a. Vstupních k informačních bitů v pořadí od nejvyššího k nejnižšímu řádu přichází jednak přímo na výstup a jednak do zpětnovazební smyčky za posledním stupněm registru. Po průchodu všech k informačních bitů zůstane v pamětech registru uchován poslední stav, který vyjadřuje zbytek dělení R(D).

Potom se přepínač P1 přepne do polohy b a spínačem P2 se rozpojí zpětnovazební smyčka. Následujícími pěti takty se posouvá informace v registru a tím se dostává na výstup zbytek dělení, který představuje r = 5 zabezpečovacích bitů ej, které jsou takto automaticky přidány za informační bity ai.

Struktura dekodéru pro uvažovaný cyklický kód bude totožná. Jeho funkce je obdobná funkci kodéru. Před příchodem zabezpečené posloupnosti je registr vynulován. Na výstup se předává zabezpečený blok vyjma zabezpečovacích bitů. Do zpětnovazebního posuvného registru se přivádí kompletní zabezpečený blok včetně zabezpečovacích bitů ej. Po jejich průchodu zůstane v pamětech registru uchován zbytek R´(x) dělení, který bude v případě bezchybného přenosu nulový.

Alternativní realizace spočívá v použití zcela shodného kodéru v přijímači, jakým je vybaven vysílač. Na přijímací straně se pak porovnává přijatá zabezpečovací skupina ej s místně získanou skupinou e´j. V případě bezchybného přenosu budou obě skupiny shodné. Druhý uvedený způsob se používá zejména tehdy, když zabezpečovací skupina není přidávána bezprostředně za zabezpečený blok, ale vysílá se jako součást složitější struktury rámce digitálního signálu.

Uvedený popis charakterizuje detekční kód. Při požadavku opravy chyb lze pro identifikaci chybných bitů a jejich opravu využít konečný stav posuvného registru. Vycházíme z tzv. chybového mnohočlenu .

Je zřejmé, že chybový mnohočlen bude obsahovat prvek 1 právě v místech chyby (tj. odlišnosti F´(D) od F(D)), kdežto ve všech ostatních místech budou nuly. Z této rovnice vyplývá pro mnohočlen přijaté zprávy:

vydělme generujícím mnohočlenem G(x):

a protože dělení má nulový zbytek, bude zbytek dělení druhého členu roven zbytku dělení, který je ale dán zjištěným konečným stavem posuvného registru na přijímací straně. Jde o to zjistit, jakému chybovému mnohočlenu odpovídá pravděpodobně známý zbytek po dělení.

V dalším kroku lze provést dělení , a to pro všechny možné chybové polynomy E(x), tj. pro všechny možné kombinace uvažovaných chyb – 1 chyba, 2 chyby, apod. To může být předem uloženo v pamětech dekodéru pro dané G(D) a hodnoty k, r. Potom kombinace E(D), pro kterou bude zbytek tohoto dělení shodný s konečným stavem posuvného registru v přijímači, bude hledaným chybovým mnohočlenem a bude ukazovat pozici chyb. Oprava se provede sečtením takto určeného mnohočlenu chyb E(D) s přijatým mnohočlenem F´(D), neboť vyslaná zpráva je:

Tím se opraví chyby v přijaté zprávě F´(D).

Významnou vlastností cyklického kódu, která rozšířila jeho používání v datových přenosech je schopnost zabezpečení nejen proti jednotlivým chybám, ale také proti shlukům chyb. Stupeň generujícího mnohočlenu se volí podle požadavků na zabezpečující schopnost kódu.