2.2 Cyklické kódy

Pro zabezpečování přenosu digitálních signálů se nejvíce rozšířily tzv. cyklické kódy označované zkratkou CRC (Cyclic Redundancy Check), které patří k systematickým blokovým kódům. Každý blok k informačních prvků ai se doplní r kontrolními zabezpečovacími prvky ej. Výsledná skupina n = k + r prvků vytváří vysílaný zabezpečený kód bude mít strukturu .

Při výkladu principů cyklických kódů je výhodné využívat algebry mnohočlenů v binární číselné soustavě. Posloupnost k informačních bitů ai tvořících vysílaný blok zprávy můžeme vyjádřit mnohočlenem zprávy A(x) stupně (k-1):

Informační bity ai tak tvoří jednotlivé řády binárního čísla, které odpovídá zabezpečovanému bloku. Jelikož se prakticky přenášejí a zpracovávají bitové posloupnosti v sériovém tvaru, používá se místo proměnné x vyjádření pomocí symbolu D odpovídajícímu zpožďovacímu členu. Mocniny D představují pořadí symbolu v kódovém slově, tedy násobení D0 odpovídá nulovému zpoždění tj. prvnímu vysílanému bitu, D1 odpovídá zpoždění jedním členem D tj. druhému vysílanému bitu atd. Mnohočlen zprávy A(D) stupně (k-1) pak bude zapsán takto:

Tento způsob zápisu budeme dále používat. Zabezpečující skupinu lze zapsat jako mnohočlen následovně:

S bitovými posloupnostmi zapsanými ve tvaru mnohočlenů lze pracovat podle pravidel algebry mnohočlenů, tj. lze je sčítat, násobit, dělit. Výsledek je shodný jako při stejných operacích s dvojkovými čísly.

Při použití cyklických kódů skupinu zabezpečovacích prvků ej resp. odpovídající zabezpečující mnohočlen R(D), získáme na vysílací straně pomocí, tzv. generujícího mnohočlenu G(D).

Abychom získali prostor pro připojení počtu r zabezpečujících prvků ej za informační prvky, přiřadíme k posloupnosti informačních bitů ai nejprve r nulových míst. To odpovídá mnohočlenu vytvořeném součinem

Tento součin vydělíme generujícím mnohočlenem G(D):

Podíl P(D) nemá další význam. Zajímá nás zbytek tohoto dělení vyjádřený mnohočlenem R(D), který použijeme jako zabezpečující mnohočlen. Může být nejvýše stupně (r-1) neboť dělitel G(D) je stupně r.

Takový postup se na vysílací straně realizuje pro každý jednotlivý blok vysílané zprávy A(D). Mnohočlen zabezpečené zprávy představující vysílanou bitovou posloupnost délky n = k + r tedy bude:

což je mnohočlen stupně [(k - 1) + r]. Tím přidáme zabezpečující bity ej namísto přidaných nulových míst.

Mnohočlen takto zabezpečené zprávy F(D) má významnou vlastnost – je dělitelný generujícím mnohočlenem G(D) beze zbytku. Tato vlastnost je využita na přijímací straně ke kontrole správnosti přijaté zprávy. Na přijímací straně se tedy přijatý blok F´(D) vydělí daným generujícím mnohočlenem G(D). Bude-li zbytek tohoto dělení nenulový, pak to bude příznakem chyby v přijatém bloku. Bude-li zbytek tohoto dělení nulový, pak se chyba nevyskytla, přitom všem není vyloučen výskyt eventuální nedetekovatelné chyby.

Generující mnohočlen G(D) musí být primitivním mnohočlen stupně r obdobně jako mnohočlen používaný pro skrambler. A stejně jako u skrambleru se používá i ke generování zabezpečení u cyklického kódu posuvný registr.