Ennek a szónak megfelelő formális változóból x. Látható, hogy ez a megfeleltetés nemcsak egy az egyhez, hanem izomorf is. Mivel a "szavak" a mezőből származó betűkből állnak, összeadhatók és szorozhatók (elemenként), és az eredmény ugyanabban a mezőben lesz. A szópár lineáris kombinációjának megfelelő polinom, és egyenlő e szavak polinomjainak lineáris kombinációjával

Ez lehetővé teszi számunkra, hogy a véges mező feletti n hosszúságú szavak halmazát a mező felett legfeljebb n-1 fokos polinomok lineáris terének tekintsük.

Algebrai leírás

Ha a ciklikus eltolással kapott kódszó egy bittel jobbra a szótól, akkor a megfelelő polinom c 1 (x) az előzőből x-szel való szorzással kapjuk:

Kihasználva azt a tényt

Váltás jobbra és balra j kisülések:

Ha egy m(x) egy tetszőleges polinom a mező felett GF(q) és c(x) - ciklikus ( n,k) kódot, akkor m(x)c(x)mod(x n − 1) ennek a kódnak a kódszava is.

Polinom generálása

Meghatározás A ciklus generáló polinomja ( n,k) kód C olyan nem nulla polinomnak nevezzük tól től C, amelynek foka a legkisebb, az együttható pedig a legmagasabb fokon g r = 1 .

1. tétel

Ha egy C- ciklikus ( n,k) kód és g(x) a generáló polinomja, majd a foka g(x) egyenlő r = nk és minden kódszó egyedileg ábrázolható

c(x) = m(x)g(x) ,

ahol fokozat m(x) kisebb vagy egyenlő k − 1 .

2. tétel

g(x) a ciklus generáló polinomja ( n,k) a binomiális osztója x n − 1

Következmények:így generáló polinomként bármilyen polinomot, osztót választhatunk x n− 1. A kiválasztott polinom mértéke határozza meg az ellenőrző szimbólumok számát r, szám információs szimbólumok k = nr .

Generatív mátrix

A polinomok egyébként lineárisan függetlenek m(x)g(x) = 0 nem nullához m(x), ami lehetetlen.

Ez azt jelenti, hogy a kódszavak a lineáris kódokhoz hasonlóan az alábbiak szerint írhatók:

, ahol G van mátrixot generál, m(x) - információs polinom.

Mátrix G szimbolikus formában írható:

Mátrix ellenőrzése

Egy ciklikus kód minden kódszava esetén . Ezért ellenőrző mátrixígy írható:

Kódolás

Rendszertelen

A nem szisztematikus kódolásnál a kódszót egy információs polinom szorzataként kapjuk meg egy generáló polinom által

c(x) = m(x)g(x) .

Polinomiális szorzókkal valósítható meg.

Szisztematikus

A szisztematikus kódolással a kódszó információs részblokk és ellenőrzés formájában jön létre

Legyen tehát az információs szó a kódszó legmagasabb hatványa

c(x) = x r m(x) + s(x),r = nk

Aztán a feltételből az következik

Ez az egyenlet határozza meg a szisztematikus kódolási szabályt. Megvalósítható többciklusú lineáris szűrőkkel (MLF)

Példák

Bináris (7,4,3) kód

Elválasztóként x 7 − 1 egy harmadfokú generáló polinomot választunk g(x) = x 3 + x + 1 , akkor a kapott kód hosszúságú lesz n= 7 , ellenőrző szimbólumok száma (a generáló polinom foka) r= 3 , információs szimbólumok száma k= 4 , minimális távolság d = 3 .

Generatív mátrix kód:

,

ahol az első sor egy polinomiális bejegyzés g(x) együtthatók növekvő sorrendben. A fennmaradó sorok az első sor ciklikus eltolódásai.

Ellenőrizze a mátrixot:

,

ahol az i-edik oszlop a 0-tól kezdve az osztás maradéka x én polinomon g(x) , a hatványok növekvő sorrendjében írva, felülről kezdve.

Így például a 3. oszlop , vagy vektoros jelölésben .

Ezt könnyű ellenőrizni GH T = 0 .

Bináris (15,7,5) BCH kód

Generáló polinomként g(x) két osztó szorzatát választhatja ki x 15 − 1 ^

g(x) = g 1 (x)g 2 (x) = (x 4 + x + 1)(x 4 + x 3 + x 2 + x + 1) = x 8 + x 7 + x 6 + x 4 + 1 .

Ekkor minden kódszó megkapható az információs polinom szorzatával m(x) végzettséggel k– 1 így:

c(x) = m(x)g(x) .

Például az információs szó a polinomnak felel meg m(x) = x 6 + x 5 + x 4 + 1 , majd a kódszó c(x) = (x 6 + x 5 + x 4 + 1)(x 8 + x 7 + x 6 + x 4 + 1) = x 14 + x 12 + x 9 + x 7 + x 5 + 1 , vagy vektoros formában

Lásd még

Linkek

Wikimédia Alapítvány. 2010 .

Nézze meg, mik a "ciklikus kódok" más szótárakban:

    rövidített ciklikus kódok- - [L.G. Sumenko. Angol orosz információs technológiai szótár. M.: GP TsNIIS, 2003.] Témák Információs technológiaáltalában EN rövidített ciklikus kódok ...

    Nem bináris ciklikus kódok, amelyek lehetővé teszik az adatblokkok hibáinak javítását. A kódvektor elemei nem bitek, hanem bitcsoportok (blokkok). Nagyon gyakoriak a bájtokkal (oktettekkel) működő Reed Solomon kódok. Reed Solomon kódja ... Wikipédia

    Golay kódok- Tökéletes lineáris blokkkódok családja hibajavítással. A leghasznosabb a bináris Golay kód. A hármas Golay-kód is ismert. A Golay kódok ciklikus kódoknak tekinthetők. …… Műszaki fordítói kézikönyv

    A kommunikációs technológiában a hibaészlelés olyan művelet, amelynek célja az adatok sértetlenségének ellenőrzése az információ rögzítése / lejátszása vagy kommunikációs vonalakon történő továbbítása során. Hibajavítási (hibajavítási) eljárás az információk helyreállításához ... ... után Wikipédia

    A kommunikációs technológiában a hibaészlelés olyan művelet, amelynek célja az adatok sértetlenségének ellenőrzése az információ rögzítése / lejátszása vagy kommunikációs vonalakon történő továbbítása során. Hibajavítási (hibajavítási) eljárás az információk helyreállításához ... ... után Wikipédia

Ez a lineáris kódok egy alosztálya, amelyek azzal a gem tulajdonsággal rendelkeznek, hogy a szimbólumok ciklikus permutációja egy kódolt blokkban egy másik lehetséges kódolt blokkot eredményez ugyanabból a kódból. A ciklikus kódok az algebrai Galois-térelmélet1 gondolatainak alkalmazásán alapulnak.

A kommunikációs rendszerek számos legfontosabb zaj-immun kódja, -

különösen a ciklikus, véges aritmetikai struktúrákon alapulnak

Galois mezők. terület véges mezőt alkotó elemek halmazának nevezzük

A műveleti rangok idézőjelben vannak, mert nem mindig általánosan elfogadottak. aritmetikai műveletek. A mezőnek mindig van egy nulla eleme (0) vagy nulla, és egyetlen eleme (1) vagy egy. Ha szám q a mező elemei korlátozottak, akkor a mezőt hívják végső mező, vagy véges Galois mező, és van jelölve GF(q) y ahol q- tereprend. A legkisebb Galois-mező a kételemes mező GF( 2), amely csak két elemből áll, 1 és 0. Annak érdekében, hogy

1 Evariste Galois (1811 - 1832) - francia matematikus, lefektette a modern algebra alapjait.

elemeken végzett műveletek elvégzése GF( 2) nem vezettek ezen a területen túllépéshez, modulo 2-ben hajtják végre (általában ezt a mező sorrendje határozza meg egyszerű Galois mezők).

A mezőnek számos speciális matematikai tulajdonsága van. A mező elemeihez az összeadás és szorzás műveletei vannak definiálva, és e műveletek eredményeinek ugyanabba a halmazba kell tartozniuk.

Az összeadási és szorzási műveleteknél a szokásos matematikai asszociativitási szabályokat kell követni - a + (b + c) = (a + b)+ c, kommutativitás - a + b = b + aés a b = b aés disztribúció - a (b+ c) = a b + a Val vel.

Minden mezőelemhez a kell lennie egy inverz elemnek összeadással (-a)és ha a nem egyenlő nullával, inverz elem szorzással (th ’).

A mezőnek tartalmaznia kell adalék egység - 0 elem, úgy, hogy a + 0 = a bármely mezőelemhez a.

A mezőnek tartalmaznia kell szorzó egység - elem 1, úgy, hogy aL = a bármely mezőelemhez a.

Például vannak mezők valós számok, racionális számok, komplex számok. Ezek a mezők végtelen számú elemet tartalmaznak.

Valójában egy kódszó ciklikus permutációjával létrehozott összes halmaz egyben kódszó is. Így például az 1000101 kombináció ciklikus permutációi a 0001011, 0010110, 0101100 stb. kódkombinációk is lesznek. Ez a tulajdonság lehetővé teszi a kódoló és a dekódoló nagymértékű egyszerűsítését, különösen a hibaészlelés és az egyszeri hibajavítás terén. A ciklikus kódokra való figyelem annak köszönhető, hogy magas korrekciós tulajdonságaikat viszonylag egyszerű algebrai módszerek alapján valósítják meg. Ugyanakkor egy tetszőleges lineáris blokkkód dekódolásához táblázat módszerek nagy mennyiségű dekódoló memóriát igényel.

A ciklikus kódot lineáris blokknak nevezzük (n, k)- olyan kód, amelyet a ciklikusság tulajdonsága jellemez, pl. bármely engedélyezett kódszó egy lépéssel balra történő eltolása egy engedélyezett kódszót is ad, amely ugyanahhoz a kódhoz tartozik, és amelyhez a kódszavak halmazát fokszámú polinomok halmaza reprezentálja (P- 1) vagy kevésbé osztható a generáló polinommal g(x) fokozat r=n-ky ami egy binomiális tényező x n+

A ciklikus kódban a kódszavakat polinomok (polinomok) képviselik.

ahol P - kód hossza; A i- Galois mező együtthatók (kódkombinációs értékek).

Például az 101101 kódkombinációnál a polinom bejegyzés alakja a következő

A ciklikus kódok példái az egyenletes ellenőrző kódok, az ismétlődő kódok, a Hamming-kódok, a PC-kódok és a turbókódok.

Hamming kód. A Hamming-kód hibajavító képességei a minimális kódtávolsághoz kapcsolódnak d0. Minden többszörös hiba kijavításra kerül q= cnt (d 0- l)/2 (itt a cnt jelentése "egész rész") és multiplicitási hibákat észlel d 0 - 1. Szóval, páratlan paritással d Q = 2 és egyszeri hibákat észlel. Hamming kódban d 0 = 3. Az információs számjegyeken kívül L= log 2 Q redundáns vezérlőbit, ahol K- információs bitek száma. Paraméter L felfelé kerekítve a következő magasabb egész értékre. Az L-bites vezérlőkód azon információs bitek számának bitenkénti összeadásának (modulo 2 összeadás) fordított eredménye, amelyek értéke eggyel egyenlő.

Példa 7.7

Legyen az 100110 fő kód, azaz. Q= 6. Adjunk meg egy további kódot.

Megoldás

Azt találjuk L= 3 és a komplement kód az

ahol P a bitenkénti összeadás művelet szimbóluma, és az inverzió után 000-at kapunk. Most a kiegészítő kerül továbbításra a fő kóddal. A vevőben a kiegészítő kód ismét kiszámításra kerül, és összehasonlításra kerül a továbbított kóddal. Az összehasonlító kód fix, és ha eltér nullától, akkor értéke a főkód hibásan fogadott számjegyének a száma. Tehát, ha a 100010 kód érkezik, akkor a kiszámított kiegészítő kód megegyezik a 010Ш10 = 100 inverzével, azaz. 011, ami hibát jelent a 3. számjegyben.

A Hamming-kódok általánosítása ciklikus BCH-kódok, amelyek lehetővé teszik a fogadott kódszó többszörös hibájának javítását.

Reed-Solomon kódok Galois-mezőkön vagy véges nullákon alapulnak. Aritmetikai műveletek összeadás, kivonás, szorzás, osztás stb. véges nulla elemei fölött olyan eredményt adunk, amely egyben ennek a nullának az eleme is. A Reed-Solomon kódolónak vagy dekódernek feltétlenül végre kell hajtania ezeket a műveleteket. A kód megvalósításához szükséges összes művelet speciális hardvert vagy speciális szoftvert igényel.

Turbó kódok. A redundáns kódok önállóan és több kód valamilyen kombinációjaként is használhatók, amikor egy redundáns kód karakterkészleteit egy másik redundáns kód elemi információs szimbólumainak tekintjük. Ez az egyesület néven vált ismertté lépcsőzetes kód. Az összefűzött kódok nagy előnye, hogy használatuk lehetővé teszi a kódoló és különösen a dekódoló egyszerűsítését az azonos hosszúságú és redundanciájú, nem kaszkádos kódokat tartalmazó hasonló eszközökhöz képest. A lépcsőzetes kódolás turbókódok létrehozásához vezetett. Turbókód két vagy több szisztematikus kódból álló párhuzamos jelszerkezetnek nevezzük. Felépítésük alapelve több párhuzamos komponens kódoló alkalmazása. Komponens kódként használhatók blokk- és konvolúciós kódok, Hamming-kódok, PC-kódok, BCH stb.. A perforáció (punkció) alkalmazása lehetővé teszi a turbókód relatív sebességének növelését azáltal, hogy korrekciós képességét a rendszer statisztikai jellemzőihez igazítja. kommunikációs csatorna. A turbókód kialakításának elve a következő: a bemeneti jel X, a következőket tartalmazza Nak nek bit, párhuzamosan táplálva N interleaverek. Az utóbbiak mindegyike olyan eszköz, amely egy blokk elemeit permuálja Nak nek bitek pszeudo-véletlen sorrendben. Az interleaverekből származó kimeneti jel - átrendezett szimbólumok - a megfelelő elemi kódolókhoz kerül. Bináris sorozatok x p i= 1,2,..., JV, a kódoló kimenetén ellenőrző szimbólumok vannak, amelyek az információs bitekkel együtt egyetlen kódszót alkotnak. Az interleaver használata lehetővé teszi a korrelált hibasorozatok előfordulását a turbókódok dekódolásakor, ami fontos a hagyományos ismétlődő dekódolási módszer alkalmazásakor a feldolgozás során. Az alkatrészkód megválasztásától függően a turbókódok konvolúciós turbókódokra és blokktermékkódokra vannak osztva.

Ennek a szónak megfelelő formális változóból x. Látható, hogy ez a megfeleltetés nemcsak egy az egyhez, hanem izomorf is. Mivel a "szavak" a mezőből származó betűkből állnak, összeadhatók és szorozhatók (elemenként), és az eredmény ugyanabban a mezőben lesz. A szópár lineáris kombinációjának megfelelő polinom, és egyenlő e szavak polinomjainak lineáris kombinációjával

Ez lehetővé teszi számunkra, hogy a véges mező feletti n hosszúságú szavak halmazát a mező felett legfeljebb n-1 fokos polinomok lineáris terének tekintsük.

Algebrai leírás

Ha a ciklikus eltolással kapott kódszó egy bittel jobbra a szótól, akkor a megfelelő polinom c 1 (x) az előzőből x-szel való szorzással kapjuk:

Kihasználva azt a tényt

Váltás jobbra és balra j kisülések:

Ha egy m(x) egy tetszőleges polinom a mező felett GF(q) és c(x) - ciklikus ( n,k) kódot, akkor m(x)c(x)mod(x n − 1) ennek a kódnak a kódszava is.

Polinom generálása

Meghatározás A ciklus generáló polinomja ( n,k) kód C olyan nem nulla polinomnak nevezzük tól től C, amelynek foka a legkisebb, az együttható pedig a legmagasabb fokon g r = 1 .

1. tétel

Ha egy C- ciklikus ( n,k) kód és g(x) a generáló polinomja, majd a foka g(x) egyenlő r = nk és minden kódszó egyedileg ábrázolható

c(x) = m(x)g(x) ,

ahol fokozat m(x) kisebb vagy egyenlő k − 1 .

2. tétel

g(x) a ciklus generáló polinomja ( n,k) a binomiális osztója x n − 1

Következmények:így generáló polinomként bármilyen polinomot, osztót választhatunk x n− 1. A kiválasztott polinom mértéke határozza meg az ellenőrző szimbólumok számát r, információs szimbólumok száma k = nr .

Generatív mátrix

A polinomok egyébként lineárisan függetlenek m(x)g(x) = 0 nem nullához m(x), ami lehetetlen.

Ez azt jelenti, hogy a kódszavak a lineáris kódokhoz hasonlóan az alábbiak szerint írhatók:

, ahol G van mátrixot generál, m(x) - információs polinom.

Mátrix G szimbolikus formában írható:

Mátrix ellenőrzése

Egy ciklikus kód minden kódszava esetén . Ezért ellenőrző mátrixígy írható:

Kódolás

Rendszertelen

A nem szisztematikus kódolásnál a kódszót egy információs polinom szorzataként kapjuk meg egy generáló polinom által

c(x) = m(x)g(x) .

Polinomiális szorzókkal valósítható meg.

Szisztematikus

A szisztematikus kódolással a kódszó információs részblokk és ellenőrzés formájában jön létre

Legyen tehát az információs szó a kódszó legmagasabb hatványa

c(x) = x r m(x) + s(x),r = nk

Aztán a feltételből az következik

Ez az egyenlet határozza meg a szisztematikus kódolási szabályt. Megvalósítható többciklusú lineáris szűrőkkel (MLF)

Példák

Bináris (7,4,3) kód

Elválasztóként x 7 − 1 egy harmadfokú generáló polinomot választunk g(x) = x 3 + x + 1 , akkor a kapott kód hosszúságú lesz n= 7 , ellenőrző szimbólumok száma (a generáló polinom foka) r= 3 , információs szimbólumok száma k= 4 , minimális távolság d = 3 .

Generatív mátrix kód:

,

ahol az első sor egy polinomiális bejegyzés g(x) együtthatók növekvő sorrendben. A fennmaradó sorok az első sor ciklikus eltolódásai.

Ellenőrizze a mátrixot:

,

ahol az i-edik oszlop a 0-tól kezdve az osztás maradéka x én polinomon g(x) , a hatványok növekvő sorrendjében írva, felülről kezdve.

Így például a 3. oszlop , vagy vektoros jelölésben .

Ezt könnyű ellenőrizni GH T = 0 .

Bináris (15,7,5) BCH kód

Generáló polinomként g(x) két osztó szorzatát választhatja ki x 15 − 1 ^

g(x) = g 1 (x)g 2 (x) = (x 4 + x + 1)(x 4 + x 3 + x 2 + x + 1) = x 8 + x 7 + x 6 + x 4 + 1 .

Ekkor minden kódszó megkapható az információs polinom szorzatával m(x) végzettséggel k– 1 így:

c(x) = m(x)g(x) .

Például az információs szó a polinomnak felel meg m(x) = x 6 + x 5 + x 4 + 1 , majd a kódszó c(x) = (x 6 + x 5 + x 4 + 1)(x 8 + x 7 + x 6 + x 4 + 1) = x 14 + x 12 + x 9 + x 7 + x 5 + 1 , vagy vektoros formában

Lásd még

Linkek

Wikimédia Alapítvány. 2010 .

  • Ciklikus formák a zenében
  • Ciklikus peremfeltételek

Nézze meg, mik a "ciklikus kódok" más szótárakban:

    rövidített ciklikus kódok- - [L.G. Sumenko. Angol orosz információs technológiai szótár. M .: GP TsNIIS, 2003.] Témák információtechnológia általában HU rövidített ciklikus kódok ...

    Reed-Solomon kódok- nem bináris ciklikus kódok, amelyek lehetővé teszik az adatblokkok hibáinak javítását. A kódvektor elemei nem bitek, hanem bitcsoportok (blokkok). Nagyon gyakoriak a bájtokkal (oktettekkel) működő Reed Solomon kódok. Reed Solomon kódja ... Wikipédia

    Golay kódok- Tökéletes lineáris blokkkódok családja hibajavítással. A leghasznosabb a bináris Golay kód. A hármas Golay-kód is ismert. A Golay kódok ciklikus kódoknak tekinthetők. …… Műszaki fordítói kézikönyv

    Hibajavító kódok

    Hibajavító kódok- A kommunikációs technológiában a hibaészlelés olyan művelet, amelynek célja az adatok sértetlenségének ellenőrzése az információ rögzítése/lejátszása vagy kommunikációs vonalakon történő továbbítása során. Hibajavítási (hibajavítási) eljárás az információk helyreállításához ... ... után Wikipédia

    Hibajavító kódok- A kommunikációs technológiában a hibaészlelés olyan művelet, amelynek célja az adatok sértetlenségének ellenőrzése az információ rögzítése/lejátszása vagy kommunikációs vonalakon történő továbbítása során. Hibajavítási (hibajavítási) eljárás az információk helyreállításához ... ... után Wikipédia

A ciklikus kódok fő tulajdonságai és maga a neve is összefügg azzal a ténnyel, hogy a továbbított üzenetben a bináris szimbólumok összes megengedett kombinációja beszerezhető valamilyen forrásszó ciklikus eltolási műveletével: Általában a ciklikus kód kódkombinációit nem tekintjük nullák és egyesek sorozataként, de bizonyos fokú polinomként. Bármely számrendszerben bármely szám általánosan ábrázolható: ahol x a számrendszer alapja; a - ennek a számrendszernek a számjegyei; p-1, p-2, ... - az alap megemelési fokának mutatója, ugyanakkor sorszámokat, amelyek a rangokat foglalják el. A bináris rendszerben x=2, és a "0" vagy "1". Például a 01001 bináris kombináció felírható polinomként az x argumentumban: Ha egy kódkombinációt polinomként írunk fel, az 1. számjegyben lévő egység x" tagként kerül beírásra, nulla pedig egyáltalán nem. A polinomok formájú kódkombinációk lehetővé teszik, hogy egy az egyhez megfeleltetést hozzunk létre közöttük, és a kombinációkra gyakorolt ​​műveleteket a polinomokra vonatkozó műveletekre redukáljuk. Így a bináris polinomok összeadása az egyenlő hatványú együtthatók összeadási modulo 2-re csökken Például a szorzást a hatványfüggvények szokásos szorzási szabálya szerint hajtjuk végre, azonban az adott fokon kapott együtthatók összeadódnak modulo 2. Például , Az osztás polinomok normál osztásaként is megtörténik. ; ebben az esetben a kivonási műveletet a 2. modulo összeadás művelete váltja fel: Ahogy fentebb megjegyeztük, a kódokat ciklikusnak nevezzük, mert a megengedett a n (, a n _ 2 ,...,a 1 , a n ^ a l L,..., a 2,a 1,a d1 a n1, és a 0 is megengedett kombináció. Egy ilyen ciklikus permutáció polinom formájú reprezentációk használatakor a polinom x-szel való szorzásával jön létre. ( x + a 0 , akkor Y (x) x \u003d a n] x n + a n 2 x n " 1 + ... + a x x 2 + a ^ x. Annak érdekében, hogy a polinom foka ne haladja meg az n-1 értéket, az x" kifejezést eggyel helyettesítjük, ezért: Például megvan a kód kombináció 1101110-> x in + x 5 + x 3 +. x g -1-x. Toljuk el egy számjeggyel. Kapjuk: Ami ugyanaz, mintha az eredeti polinomot x-re szoroznánk: A ciklikus kódok felépítésének elmélete a magasabb algebra bináris polinomok tulajdonságait vizsgáló szakaszain. Ebben az elméletben különleges szerepet játszanak az úgynevezett irreducibilis polinomok, vagyis azok a polinomok, amelyek nem ábrázolhatók alacsonyabb fokú polinomok szorzataként. a th-tag csak önmagával és eggyel osztható. A magasabb algebrából ismert, hogy az x "+1 binomiális osztható egy irreducibilis polinommal, maradék nélkül. A kódoláselméletben az irreducibilis polinomokat generáló polinomoknak nevezik, mivel megengedett kódkombinációkat "alkotnak" (az irreducibilis polinomokat táblázatba foglaljuk, lásd 8.4. táblázat). ) (9) A ciklikus kód létrehozásának az az ötlete, hogy a polinom reprezentálja információs rész kódkombináció esetén legfeljebb n-1 fokú polinomra kell konvertálnia, amely maradék nélkül osztható a generáló P (x) polinommal. Lényeges, hogy ez utóbbi mértéke megegyezzen a kódkombináció ellenőrző részének számjegyeinek számával. A ciklikus kódokban az összes polinomként ábrázolt kombinációnak van egy jellemzője: maradék nélkül osztható a generáló P(x) polinommal. Egy megengedett kódkombináció felépítése a következő: 1. A k hosszúságú kódkombináció információs részét O(x) polinomként ábrázoljuk. 2. O(x)-t megszorozzuk az Y monomimmal, és 0(x)x r-t kapunk, azaz a ¿-bites kódkombinációt r bittel toljuk el. 3. Ossza el az O(x)x" polinomot a generáló P(x) polinommal, amelynek foka egyenlő r-rel. O(x) x r-rel való szorzata eredményeképpen az O( x) r-vel növekszik. Ha x r O[x) szorzatát egy r fokú polinom generátorával elosztjuk, akkor 0(x) fokú C(x) hányadost kapunk. mint: (8.28) ahol Wx) a 0(x)x r P(x-szel való osztásának maradéka). Mivel a C(x) ugyanolyan fokos, mint a 0(x), így a C(x) ugyanazon ¿-jegyű kód kódkombinációja. A maradék mértéke nyilvánvalóan nem lehet nagyobb, mint a generáló polinom fokszáma, azaz annak legmagasabb fokozat egyenlő r-1-gyel. Következésképpen, legnagyobb számban A maradék számjegyei nem haladják meg az r-t. A (8,28) mindkét oldalát megszorozzuk P(x-szel), feltérképezzük: (8.29) (a kivonás jelét a modulo 2 összeadás jele váltja fel). Nyilvánvaló, hogy F(x) osztható P(x)-el maradék nélkül. Az F(x) polinom a ciklikus kód megengedett kódkombinációja. A (8.29)-ből az következik, hogy egy ciklikus kód megengedett kódkombinációját kétféleképpen kaphatjuk meg: a kódkombináció szorzásával egyszerű kód C(x) a P(x) polinommal generálva, vagy az egyszerű kód 0(x) kódkombinációját megszorozzuk az x r monomimmal, és ehhez a szorzathoz hozzáadjuk a szorzatnak a generáló polinommal való osztásával kapott maradék P(x)-t. P(x). Az első kódolási módszernél az információs és ellenőrző bitek nincsenek elválasztva egymástól (a kód elválaszthatatlan). Ez megnehezíti a dekódolási folyamat gyakorlati megvalósítását. A második módszerrel egy elkülöníthető kódot kapunk: az információs számjegyek vezető pozíciókat foglalnak el, a fennmaradó n-k számjegyek tesztjegyek. Ezt a kódolási módszert széles körben használják a gyakorlatban. Példa 3. Adott kódkombináció 0111. Konstruáljunk egy ciklikus kódot d o = 3. Megoldás. Az első lépésben a szükséges d o = 3 alapján meghatározzuk az l kódhosszt és a k ellenőrző elemek számát, ehhez a 8.6.1. táblázatot használjuk. Egy adott négybites N-16 kódszóhoz. Ezután a 16. relációból (8.3. táblázat) d \u003d 3 esetén n - 7, illetve k \u003d n - m - \u003d 7 - 4 \u003d 3. Ezért a (7.4) kódra van szükség. A polinomgenerátorok táblázata (8.4. táblázat) szerint k = 3 esetén P (x) = x 3 + x 2 + 1. Továbbá: 1) a 0111-es üzenethez O (x) = x 2 + x + 1; 2) szorozd meg 0 (x) x 3-mal (mivel r \u003d 3): O (x) x 3 \u003d (x 2 -I- x + 1) x 3 \u003d x 5 + x 4 + x 3; 3) ossza el (E (x) x 3-at P (x) -vel: 4) a következőt kapjuk: ^ (x) \u003d O (x) x 3 0 I (x) \u003d x 5 + x 4 + x 3 + 1. Ez a polinom a kódkombinációnak felel meg: Ezen műveletek mindegyike elvégezhető bináris számok: 8.4. táblázat
4) F(0,1) = O(0,l)x 3 (0,l)©R(0 1 l) = 011100000001= 0111 001. Most alkossunk meg egy engedélyezett kódszót az első módon: F(x) =C(x)P(x). Végezzük el a szorzást úgy, hogy a polinomokat bináris számként ábrázoljuk: Látható, hogy az információ és az ellenőrző bitek nem különböztethetők meg a kapott kódkombinációban. A ciklikus kódolás hibadetektálása abból adódik, hogy a kapott kódszót elosztjuk ugyanazzal a generáló polinommal, amelyet a kódolásnál is használtunk (a formáját a vételkor ismerni kell). Ha a vett kódkombinációban nincs hiba (vagy olyanok, hogy az adott továbbított kódkombinációt egy másik engedélyezetté alakítjuk), akkor a generáló polinommal való osztás maradék nélkül megtörténik. Ha az osztás maradékot ad, akkor ez hibát jelez. 4. példa Engedélyezett kódkombinációként az előző példában kapott kódkombinációt vesszük: P (x) \u003d x 5 + x 4 + x 3 + 1, és P (x) \u003d x 3 + x 2 + 1, vagy binárisan E(0,1) = 0111001; P(0,1) = 1101. Tegyük fel, hogy az információs részben a legjelentősebb (7.) számjegyben történt hiba (a számjegyeket jobbról balra számoljuk). A kapott kódkombináció így néz ki: 1111001. Végezzük el a hibaészlelési műveletet: A 110 maradék jelenléte hibát jelez. A ciklikus kódokat széles körben használják információátviteli rendszerekben. Például a széles körben használt \7.42 modemprotokollban a kódcsoportok kódolásához egy q (X) = X 16 + X "-2 + X 5 + 1 generáló polinomot használnak, amely egyenértékű az 1 0001 0000 0010 kóddal. 0001, valamint egy magasabb rendű generáló polinom d(X) = X 32 + X 26 + X 23 + X 22 + X 16 + X 12 + X 11 + X 10 + X 8 + X 1 + X 5 + X 4 + X 2 + 1. 8.6.

Hatékony kódok, amelyek egyetlen, többszörös hibát és hibasorozatokat észlelnek ciklikus kódok(CRC – ciklikus redundancia kód). Nagyon megbízhatóak és blokkszinkronizálásra használhatók, ahol például egy páratlan bit kiválasztása nehézkes lenne.

A ciklikus kódolás egyik változata a szorzás forráskód a g(x) generátorpolinom által, és a dekódolás - g(x)-szel osztva. Ha az osztás maradéka nem nulla, akkor hiba történt. Hibajelet küld az adónak, ami újraküldést okoz.

A generáló polinom az bináris reprezentáció az egyik egyszerű tényező, amelyre az X n -1 számot felbontjuk, ahol X n egy egységet jelöl az n-edik bitben, n egyenlő a kódcsoport bitjeinek számával. Tehát, ha n \u003d 10 és X \u003d 2, akkor X n -1 \u003d 1023 \u003d 11 * 93, és ha g (X) \u003d 11 vagy bináris kód 1011, akkor az ezzel a generáló polinommal rendelkező kódcsoportban szereplő A i számok A i *g(X) ciklikus kódjaira példák láthatók a következő táblázatban. 3.1.

Alapvető lehetőség A gyakorlatban széles körben használt ciklikus kód abban tér el az előzőtől, hogy a generáló polinom által végzett osztási műveletet a következő algoritmus helyettesíti: 1) Az eredeti kódolt A számhoz K nullát rendelünk, ahol K a bitek száma polinom generálása, eggyel csökkentve; 2) a kapott A * (2 K) számon egy O műveletet hajtanak végre, amely abban különbözik az osztástól, hogy a művelet minden lépésében a kivonás helyett bitenkénti "kizáró VAGY" műveletet hajtanak végre: 3) a kapott maradékot B a CRC - redundáns K-bit kód, amely a kódolt C számban helyettesíti a K-hez jobbra rendelt nullákat, azaz.

C \u003d A * (2 K) + B.

A vételi oldalon az O műveletet hajtják végre a C kódon. Ha a maradék nem egyenlő nullával, akkor hiba történt az átvitel során, és az A kód újraküldésére van szükség.

PÉLDA Legyen A = 1001 1101, amely az 11001 polinomot alkotja.

Mivel K \u003d 4, akkor A * (2 K) = 100111010000. A ciklikus kód kiszámítására szolgáló O művelet végrehajtását az 1. ábra mutatja. 3.2.

3.1. táblázat

Szám Ciklikus kód Szám Ciklikus kód
0 0000000000. 13 0010001111
1 0000001011 14 0010011010
2 0000010110 15 0010100101
3 0000100001 16 0011000110
5 0000110111 18 0011000110
6 0001000010 19 0011010001
..... ........ ....... .......

A ciklikus kódok pozitív tulajdonságai a hiba észlelésének alacsony valószínűsége és a redundáns bitek viszonylag kis száma.

Rizs. 3.2. Példa ciklikus kód megszerzésére