Cyklický kód je lineární blokový kód , který má vlastnost cykličnosti, to znamená, že každá cyklická permutace kódového slova je také kódovým slovem. Používá se k transformaci informací, aby byly chráněny před chybami (viz Detekce a oprava chyb ).
Nechť je slovo délky n nad abecedou prvků konečného tělesa a je polynom odpovídající tomuto slovu ve formální proměnné . Je vidět, že tato korespondence je izomorfismus lineárních prostorů. Protože se „slova“ skládají z písmen z pole, lze je sčítat a násobit (prvek po prvku) a výsledek bude ve stejném poli. Polynom odpovídající lineární kombinaci dvojice slov a je roven lineární kombinaci polynomů těchto slov .
To nám umožňuje považovat množinu slov délky n nad konečným tělesem za lineární prostor polynomů se stupněm nejvýše n − 1 nad polem .
Jestliže je kódové slovo získáno cyklickým posunem o jeden bit doleva od slova , pak jemu odpovídající polynom získáme z předchozího vynásobením x :
s využitím skutečnosti, žePosun doprava a doleva po bitech:
Jestliže je libovolný polynom nad polem a je kódovým slovem cyklického kódu, pak je také kódovým slovem tohoto kódu.
Generující polynom cyklického kódu je takový nenulový polynom od , jehož stupeň je nejmenší a koeficient je nejvyšší .
Věta 1Jestliže je cyklický kód a je jeho generujícím polynomem, pak stupeň je a každé kódové slovo může být jednoznačně reprezentováno jako
kde stupeň je menší nebo roven .
Věta 2— generující polynom cyklického kódu — je dělitel binomu .
DůsledkyJako generující polynom lze tedy zvolit libovolný polynom dělitele . Stupeň zvoleného polynomu určí počet kontrolních symbolů , počet informačních symbolů .
Polynomy jsou lineárně nezávislé, jinak pro nenulové , což je nemožné.
Kódová slova lze tedy psát, stejně jako lineární kódy, následovně:
kde je generující matice , je informační polynom.
Matici lze zapsat v symbolické formě:
Pro každé kódové slovo cyklického kódu, . Kontrolní matici lze tedy zapsat jako
Pak
Při nesystematickém kódování se kódové slovo získá jako součin informačního polynomu generujícím:
Lze to realizovat násobením polynomů.
Při systematickém kódování se kódové slovo tvoří ve formě informačního podbloku a kontroly:
Nechť tedy informační slovo tvoří nejvyšší mocniny kódového slova
Pak to vyplývá z podmínky
Tato rovnice definuje pravidlo systematického kódování. Lze jej implementovat pomocí vícecyklových lineárních filtrů (MLF) .
Jako dělitel zvolíme generující polynom třetího stupně , výsledný kód pak bude mít délku , počet kontrolních znaků (stupeň generujícího polynomu) , počet informačních znaků , minimální vzdálenost .
Generování matice kódu:
kde první řádek je polynom s koeficienty ve vzestupném pořadí.
Zbývající řádky jsou cyklické posuny prvního řádku.
Kontrolní matice :
kde i -tý sloupec, počínaje 1., je zbytek dělení polynomem , psaný ve vzestupných stupních, počínaje shora.
Takže například 4. sloupec je , nebo ve vektorové notaci .
Je snadné si to ověřit .
Jako generující polynom si můžete vybrat součin dvou dělitelů :
Potom lze každé kódové slovo získat pomocí součinu informačního polynomu se stupněm následujícím způsobem:
Například informační slovo odpovídá polynomu , poté kódovému slovu nebo ve vektorové podobě .