Labancz Norbert. Hibajavító kódolás

Hasonló dokumentumok
Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.

Az állítást nem bizonyítjuk, de a létezést a Paley-féle konstrukció mutatja: legyen H a

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Kódolástechnika. Buttyán Levente Györfi László Győri Sándor Vajda István december 18.

Visontay Péter január. 1. Alapfogalmak

FELADATOK A BEVEZETŽ FEJEZETEK A MATEMATIKÁBA TÁRGY III. FÉLÉVÉHEZ. ÖSSZEÁLLÍTOTTA: LÁNG CSABÁNÉ ELTE IK Budapest

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Hibadetektáló és javító kódolások

Kódelméleti és kriptográai alkalmazások

1. feladatsor Komplex számok

Hibajavító kódolás (előadásvázlat, november 14.) Maróti Miklós

Diszkrét matematika II., 8. előadás. Vektorterek

Polinomok (el adásvázlat, április 15.) Maróti Miklós

Kódolástechnika crysys web változat - 6. Kódolástechnika. Buttyán Levente Györfi László Győri Sándor Vajda István december 18.

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

KÓDOLÁSTECHNIKA PZH december 18.

Lineáris algebra és a rang fogalma (el adásvázlat, szeptember 29.) Maróti Miklós

Hibajavító kódok május 31. Hibajavító kódok 1. 1

Diszkrét matematika 2.

FFT. Második nekifutás. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék október 2.

Diszkrét matematika 2.C szakirány

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Alapfogalmak a Diszkrét matematika II. tárgyból

Kódoláselmélet. (Humann kód, hibajavító kódok, véges testek konstrukciója. Reed-Solomon kód és dekódolása.)

KOVÁCS BÉLA, MATEMATIKA I.

Hamming-kód. Definíció. Az 1-hibajavító, perfekt lineáris kódot Hamming-kódnak nevezzük. F 2 fölötti vektorokkal foglalkozunk.

Vektorok, mátrixok, lineáris egyenletrendszerek

MBNK12: Permutációk (el adásvázlat, április 11.) Maróti Miklós

Permutációk véges halmazon (el adásvázlat, február 12.)

Diszkrét matematika II. feladatok

Diszkrét matematika alapfogalmak

2. gyakorlat. A polárkoordináta-rendszer

7. gyakorlat. Lineáris algebrai egyenletrendszerek megoldhatósága

A lineáris algebra forrásai: egyenletrendszerek, vektorok

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

Lineáris leképezések. 2. Lineáris-e az f : R 2 R 2 f(x, y) = (x + y, x 2 )

17. előadás: Vektorok a térben

Bevezetés az algebrába 2 Lineáris algebra alkalmazásai

Nagy Gábor compalg.inf.elte.hu/ nagy

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

Nagy Gábor compalg.inf.elte.hu/ nagy

15. LINEÁRIS EGYENLETRENDSZEREK

Bevezetés. 1. fejezet. Algebrai feladatok. Feladatok

Diszkrét matematika 2.C szakirány

VEKTORTEREK I. VEKTORTÉR, ALTÉR, GENERÁTORRENDSZER október 15. Irodalom. További ajánlott feladatok

Matematika (mesterképzés)

1. A maradékos osztás

Bevezetés az algebrába 2

Lineáris leképezések. Wettl Ferenc március 9. Wettl Ferenc Lineáris leképezések március 9. 1 / 31

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

Vektorterek. Több esetben találkozhattunk olyan struktúrával, ahol az. szabadvektorok esetében, vagy a függvények körében, vagy a. vektortér fogalma.

Nagy Gábor compalg.inf.elte.hu/ nagy

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

Aleksziev Rita Antónia Matematika BSc Alkalmazott matematikus szakirány. Golay-kódok

A kódok típusai Kódolás: adatok megváltoztatása. Dekódolás: a megváltoztatott adatból az eredeti visszanyerése.

3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

13. Egy x és egy y hosszúságú sorozat konvolúciójának hossza a. x-y-1 b. x-y c. x+y d. x+y+1 e. egyik sem

Algoritmuselmélet gyakorlat (MMN111G)

Sztojka Miroszláv LINEÁRIS ALGEBRA Egyetemi jegyzet Ungvár 2013

24. szakkör (Csoportelméleti alapfogalmak 3.)

Vektorterek. =a gyakorlatokon megoldásra ajánlott

Vektorok. Wettl Ferenc október 20. Wettl Ferenc Vektorok október / 36

3. el adás: Determinánsok

Nagy Gábor compalg.inf.elte.hu/ nagy

GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN

Diszkrét matematika 2 (C) vizsgaanyag, 2012 tavasz

Fraktálok. Kontrakciók Affin leképezések. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék. TARTALOMJEGYZÉK Kontrakciók Affin transzformációk

Lin.Alg.Zh.1 feladatok

Lineáris Algebra. Tartalomjegyzék. Pejó Balázs. 1. Peano-axiomák

1. Polinomok számelmélete

Komplex számok. Komplex számok és alakjaik, számolás komplex számokkal.

Skalárszorzat, norma, szög, távolság. Dr. Takách Géza NyME FMK Informatikai Intézet takach/ 2005.

Kódelmélet és kriptográa

MM CSOPORTELMÉLET GYAKORLAT ( )

Intergrált Intenzív Matematika Érettségi

Klasszikus algebra előadás. Waldhauser Tamás április 28.

7. gyakorlat. Lineáris algebrai egyenletrendszerek megoldhatósága

Klasszikus algebra előadás. Waldhauser Tamás március 24.

Determinánsok. A determináns fogalma olyan algebrai segédeszköz, amellyel. szolgáltat az előbbi kérdésekre, bár ez nem mindig hatékony.

1. tétel - Gráfok alapfogalmai

1. A polinom fogalma. Számolás formális kifejezésekkel. Feladat Oldjuk meg az x2 + x + 1 x + 1. = x egyenletet.

Hibajavítás, -jelzés. Informatikai rendszerek alapjai. Horváth Árpád november 24.

A parciális törtekre bontás?

LINEÁRIS ALGEBRA (A, B, C) tematika (BSc) I. éves nappali programtervező informatikus hallgatóknak évi tanév I. félév

Diszkrét matematika 2.C szakirány

Lineáris leképezések, mátrixuk, bázistranszformáció. Képtér, magtér, dimenziótétel, rang, invertálhatóság

Összeállította: dr. Leitold Adrien egyetemi docens

Lineáris egyenletrendszerek

KOVÁCS BÉLA, MATEMATIKA I.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla

Matematika alapjai; Feladatok

Kódelmélet. Tartalomjegyzék. Jelölések. Wettl Ferenc V A. Függelék: Véges testek 21

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

Taylor-polinomok. 1. Alapfeladatok április Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját!

Komplex számok. (a, b) + (c, d) := (a + c, b + d)

Lineáris algebra gyakorlat

Nagy Viktor VÉGES TESTEK

Átírás:

Eötvös Loránd Tudományegyetem Természettudományi kar Labancz Norbert Matematika BSc Alkalmazott matematikus szakirány Hibajavító kódolás Szakdolgozat Témavezet : Dr. Hermann Péter egyetemi docens Algebra és Számelmélet Tanszék Budapest, 2016

Tartalomjegyzék 1. A hibajavító kódolás 3 1.1. Kódolási alapfogalmak............................. 3 2. Lineáris kódok 8 2.1. Bináris lineáris kódok.............................. 8 2.2. Szindróma dekódolás.............................. 11 2.2.1. A binális Hamming-kód........................ 13 3. Véges test 14 3.1. Aritmetika GF(p)-ben............................. 16 3.2. Véges test feletti polinomok.......................... 16 3.3. Aritmetika GF(p m )-ben............................. 18 4. Nembináris lineáris kód 20 4.1. Lineáris kódok kib vítése és ekvivalenciája.................. 22 4.2. Reed-Solomon kód............................... 22 5. Ciklikus kódok 24 5.1. Ciklikus kódok szisztematikus generálása................... 25 5.2. Ciklikus Reed-Solomon kód.......................... 26 6. A Golay-kódok 27 6.1. Blokkrendszerek................................. 27 6.2. A bináris Golay-kód.............................. 29 6.2.1. G 24 el állítása az ikozaéder adjacenciamátrixa segítségével..... 34 6.2.2. A mohó módon el állított G 24..................... 36 6.3. A ternáris Golay-kód.............................. 36 2

1. fejezet A hibajavító kódolás A hibakorlátozó kódolás célja információhibázó kommunikációs csatornákon történ megbízható átvitele, illetve hibázó adattárolókon történ megbízható tárolása. E célból az információt kisebb egységekre bontjuk, majd redundáns információval b vítve kódszavakba képezzük, kódoljuk. A redundancia hozzáadása teszi lehet vé az információ védelmét hibázás esetén. A hibakorlátozó kódolás két f technikája a hibajelzés illetve a hibajavítás. Hibajelzés esetén a cél annak eldöntése, hogy történt-e meghibásodás az információ továbbítása illetve tárolása során. Hibajavítás esetén ezen túlmen en a hibák kijavítása is feladat. Több kapcsolatos kérdés merül fel: hogyan történjen a kódszavakba történ leképezés, azaz a kódolás, ha célunk a minél er sebb hibakorlátozó képesség, azon feltétel mellett, hogy a rekonstrukció (dekódolás) a számításigényét tekintve hatékony maradjon. Az alábbiakban a hibakorlátozó kódok konstrukciós és dekódolási alapelveit tekintem át, a hangsúlyt a kapcsolatos fogalmakra és alapvet algoritmusokra helyezve. A fejezet elkészítésekor felhasznált szakirodalom: [1], [2], [3], [4], [5] 1.1. Kódolási alapfogalmak A hibajavító kódolás alapvet módszereit a lenti ábrán látható egyszer hírközlési struktúra kapcsán vizsgálom. Az u és u vektorok koordinátái egy F halmazból veszik értékeiket, mely halmazt forrásábécének nevezzük. A kódoló a k hosszú u vektort (az üzenetet) egy n hosszú c vektorba (a kódszóba) képzi le. A c koordinátái egy Q halmazból veszik értékeiket. A Q-t kódábécének vagy csatorna bemeneti ábécének nevezik. A csatorna kimenete v, szintén egy n hosszú vektor, melynek koordinátái szintén Q-beliek. forrás u kódoló c csatorna v dekódoló u nyel 1. Deníció. Egy c = (c 1,..., c n ) bemeneti, és egy v = (v 1,..., v n ) kimeneti sorozat esetén azt mondjuk, hogy az m-edik id pontban a csatorna hibázott, ha c m v m. Jelölje d(c, v) azon i pozíciók számát, ahol c i v i. d(c, v) = { i : c i v i, i = 1,..., n } 3

A d(c, v) számot nevezzük a c, v sorozat Hamming-távolságának, és azt mondjuk, hogy c sorozat küldésekor és a v sorozat vételekor a hibák száma t = d(c, v). Azt az esetet, mikor a hiba helye és értéke egyaránt ismeretlen, egyszer hibázásnak nevezik. d(c, v) valóban távolság, hiszen d(c, v) > 0 d(c, v) = d(v, c) illetve teljesül a háromszög-egyenl tlenség is: d(c, v) d(c, w) + d(w, v) Kód (blokk-kód) alatt a Q n halmaz egy C részhalmazát értjük, azaz C minden eleme egy n hosszú vektor, melynek koordinátái Q-beliek. C elemeit kódszavaknak nevezzük. A továbbiakban a C(n, k, d), illetve rövidítettebb formában a C(n, k) jelölést alkalmazom, kiemelve a kód paramétereit. A kódolás egy invertálható függvény, mely k hosszú F -beli sorozatot - üzenetet - képez le egy kódszóban, formalizálva: φ : F k C melyre minden u u F k esetén φ(u) φ(u ) C Dekódolás alatt két függvény egymásutánját értjük. Az egyik a csatorna kimenetének n hosszú szegmensét képezi le C-be, azaz igyekszik eltalálni a küldött kódszót, a másik pedig a φ függvény inverze, tehát ψ : Q C φ 1 : C F k φ 1 ψ : Q F k Mivel φ egyértelm en meghatározza φ 1 -et, ezért a dekódolás alatt a kés bbiekben csak a ψ függvényt értjük. A ψ dekódoló függvényként az algebrai hibajavító kódok elméletében speciális függvényt választunk, nevezetesen a v vektorhoz megkeressük azt a c C kódszót, mely Hamming-távolsága szerint hozzá a legközelebb van, vagy ha több ilyen van, akkor az egyiket, tehát teljesül, hogy ha c = ψ(v), akkor d(c, v) = min d(c, v) c C A dekódolás feladata ezek után arra a messze nem triviális feladatra sz kül, hogy egy v vett szóhoz hogyan keressük meg a hozzá legközelebbi c kódszót anélkül, hogy minden d(c, v)-t kiszámítanánk. Ha mégis kiszámítjuk ezeket a távolságokat, és minden v-hez megkeressük a hozzá legközelebbi c kódszót, majd a neki megfelel üzenetet, akkor elvben azt eltároljuk, és így egy táblázathoz jutunk, melynek címét v adja, tartalma pedig a v-nek 4

megfelel dekódolt üzenet. Ez a táblázatos dekódolásnak a legegyszer bb, de legpazarlóbb esete, hiszen a táblázat q n darab üzenetb l áll, ahol q a Q kódábécé elemszáma. A kés bbiekben kiderül, hogy a kódoló f függvény leglényegesebb tulajdonsága a C kód egy paramétere, amit kódtávolságnak nevezünk, és d min -nel jelölünk. d min = min c c d(c, c ) c, c C A hibajelzés a hibakorlátozó kódolás azon feladata, amikor a vev ben csupán detektálni akarjuk a hibázás tényét, azaz azt kérdezzük, hogy van-e hiba. Nyilván egy v vett szó esetén akkor tudjuk a hibázást észrevenni, ha v nem kódszó, amire garancia, hogy ha c küldött kódszó esetén d min > d(v, c) azaz a hibák számára d min > t tehát egy d min kódtávolságú kód minden, legfeljebb d min 1 számú hibát jelezni tud. Hibajavítás esetén azt kérdezzük, hogy ha t a hibák száma, akkor mi biztosítja, hogy a v vett szóból a c küldött kódszó egyértelm en visszaállítható legyen, azaz minden más c kódszóra d(v, v ) > d(v, c) legyen. Mivel a Hamming-távolság valóban távolság, ezért teljesíti a háromszög-egyenl tlenséget, azaz d(v, c ) d(c, c ) d(v, c) tehát úgy biztosítható, hogy d(c, c ) d(v, c) > d(v, c) ugyanis, ha ez utóbbi teljesül, akkor is teljesül, azaz minden c c-re vagyis Összefoglalva: egyszer hibázás esetén d(c, c ) > 2d(v, c) d min 2 > d(v, c) dmin 1 2 (1.1) hiba javítható. Gyakran fordul el olyan hibázás, amikor tudjuk, hogy egy pozícióban hiba lehet, vagyis tudjuk, hogy más pozíciókban nincs hiba, tehát a hiba helyét ismerjük, csak a hiba értékét nem. Az ilyen hibát törléses hibának nevezzük. Egyszer en belátható, hogy 5

minden d min 1 törléses hiba javítható, ugyanis a legrosszabb esetben sem fordulhat el, hogy két c és c kódszó ugyanazon, de legfeljebb d min pozíciójának törlésével ugyanazt a szót kapnánk. Nyilván adott n kódhosszúság és d min kódtávolság esetén nem lehet akármilyen nagy méret kódot konstruálni: 1. Tétel (Singleton-korlát). Egy M kódszóból álló, n hosszú és d min kódtávolságú kódra M q n d min+1 Bizonyítás. Legyen k egy természetes szám, melyre q k 1 < M q k Mivel a k 1 hosszú különböz sorozatok száma q k 1, ezért q k 1 < M miatt létezik két kódszó c és c, melyek els k 1 koordinátában megegyeznek. Ezekre következésképpen azaz d(c, c ) n k + 1 d min n k + 1 M q k q n d min+1 Jellegzetes esetben M = q k, vagyis a kódoló k hosszú forrásszegmensekhez rendel n hosszú vektorokat. Azt mondjuk ilyenkor, hogy a kódunk (n, k) paraméter. Ebben az esetben a Singleton-korlát alakja d min n k + 1 2. Deníció. Azon kódot, melyre a Singleton-korlátban egyenl ség áll, maximális távolságú vagy MDS (maximum distance separable) kódnak nevezzük. Képzeljünk el egy olyan kódot, mely 1-hibát képes javítani. Ehhez a következ szemléletes geometriai képet rendelhetjük. A kódszavak, mint középpontok körül képzeljünk el 1 Hamming-sugarú gömböket, azaz a gömb felületén olyan kódszóhossz hosszúságú bináris szavak találhatók, amelyeknek a középpontban lév szótól való Hamming-távolsága 1. Ha egy hiba keletkezik, akkor a vett szó a leadott kódszó körüli gömbön helyezkedik el. Más szavakkal ezen gömbök a dekódolási tartományok. Abban az esetben, ha gömbi dekódolási tartományokkal hézagmentesen képesek vagyunk lefedni a teret, perfekt kódokról beszélünk. Nagyon egyszer összefüggés adódik az 1 hibát javító bináris perfekt kódok paraméterei közötti összefüggésre. A tér elemeinek száma 2 n, a kódszavak száma 2 k, így egy gömb elemeinek száma ezek hányadosa, azaz 2 n k. Másfel l, egy 1 Hamming sugarú gömbben 1 + n elem van, így adódik, hogy 1 hibát javító bináris perfekt kódok esetén 1 + n = 2 n k 6

A következ szakaszban bemutatok egy, az ismétléses kódnál hatékonyabb perfekt kódot, a bináris Hamming-kódot. Az összefüggés könnyen általánosítható tetsz leges t 1 hiba javítás esetére: a képlet bal oldalán a gömb elemeinek a száma, a középpontól 0, 1, 2,..., t Hamming-távolságra lév szavak számának összege, azaz V (n, t) = 1 + n + ( ) n 2 + + ( ) n t áll. A fenti gondolatmenet alapján adódó Hamming-korlát bináris esetben az alábbi V (n, t) 2 n k A Hamming-korlát nembináris esetben a következ alakot ölti: t i=0 ( ) n (q 1) i q n k (1.2) i 7

2. fejezet Lineáris kódok 2.1. Bináris lineáris kódok Ebben a szakaszban el ször a bináris kódok egy fontos csoportját ismertetem. A továbbiakban a kódjainkban szerepl kódszavakat alkotó szimbólumok legyenek 0 vagy 1 érték ek, a m veletek a (mod 2) összeadás és (mod 2) szorzás. A fejezet elkészítésekor felhasznált szakirodalom: [1], [2], [3], [4], [5] Vezessük be a lineáris kód fogalmát: 3. Deníció. Egy bináris C kód lineáris, ha a C halmaza lineáris tér, azaz ha minden c, c C-re c + c C. A lineáris kód deníciójából következik, hogy a 0 vektor eleme minden lineáris kódnak, vagyis minden lineáris kód esetén a 0 kódszó. A lineáris kódok jelent ségét az adja, hogy az egyes üzenetekhez tartozó kódszavak viszonylag egyszer en generálhatók, és ugyancsak egyszer módszer található a vett kódszavak hibamentességének vizsgálatára, vagyis a hibadetektálásra, és a hibák javítása sem bonyolult. A következ kben e módszereket fogom bemutatni. Jelentsen C továbbra is egy lineáris kódot, a kódszóhossz legyen n. Ekkor C az n hosszúságú bináris koordinátájú vektorok terének egy altere. A valós vektortérben megszokott lineáris függetlenség és bázis fogalmak itt is teljesen hasonlóan értelmezhet ek, vagyis 4. Deníció. A { g i } n i=1 C vektorok lineárisan függetlenek, ha α i 0, 1 esetén k α i g i = 0 i=1 csak α i = 0 esetén teljesük minden i {1,..., k}-ra. 5. Deníció. A { } n g i C vektorok a C lineáris tér egy bázisát alkotják, ha lineárisan i=1 függetlenek, továbbá igaz az, hogy minden c C vektor el állítható c = k µ i g i i=1 8

alakban, ahol µ i {0, 1} minden i {1,..., k}-ra. Az utóbbi denícióban a bázist alkotó vektorok függetlenségéb l következik, hogy a kódszavak fenti típusú el állítása egyértelm is, ha ugyanis létezne két különböz el állítás valamely c C-re, tehát k c = µ i g i és c = i=1 k γ i g i i=1 ahol nem áll fenn µ i = γ i minden i-re, akkor a két egyenletet kivonva egymásból a nullvektornak egy nem triviális el állítását kapnánk a bázisvektorokkal, ami ellentmondana azok lineáris függetlenségének. Az egyenl ség felírható mátrix alakban: c = µg ahol µ = (µ 1,..., µ k ), G pedig a bázisvektorokból mint sorvektorokból álló mátrix. Az egyenlettel tehát egy k-dimenziós és egy n-dimenziós vektort rendelünk össze lineáris transzformációval, mégpedig kölcsönösen egyértelm módon. Azt fogjuk mondani, hogy az µ üzenethez a c kódszó tartozik. A k-dimenziós µ vektorokkal 2 k -féle üzenetet fejezhetünk ki, s ezeket kódoljuk a C kóddal. C elemei azonban n-dimenziós vektorok, és n nem kisebb k-nál, hiszen k az n-dimenziós vektorok C alterének a dimenziószáma. A k = n esetnek nincs most jelent sége, ha k kisebb, mint n, akkor viszont világos, hogy nem minden vektort kell felhasználni kódszónak, vagyis kódunk redundáns lesz, s ezt a redundanciát tudjuk hibajavításra felhasználni. Az üzenetekhez a kódszavakat a G mátrix segítségével rendeljük hozzá, vagyis a G mátrix jelöli ki az n-dimenziós vektortérnek a kódot jelent C alterét, a kódot G generálja. 6. Deníció. A fenti tulajdonságú G mátrixot a C kód generátormátrixának nevezzük. Vegyük észre, hogy ha nem tör dünk azzal, hogy melyik kódszó melyik üzenethez tartozik, csak a kódszavak halmazát tekintjük, akkor G nem egyértelm, vagyis több mátrix is generálhatja ugyan azt a kódszóhalmazt. A következ deníció egy megfeleltetést deniál az üzenetek és a kódszavak között. 7. Deníció. Egy (n, k) paraméter lineáris kód szisztematikus, ha minden kódszavára igaz, hogy annak utolsó n k szimbólumát elhagyva éppen a neki megfelel k hosszúságú üzenetet kapjuk, más szavakkal a k hosszú üzenetet egészítjük ki n k karakterrel. Már leszögeztük, hogy dekódolás alatt csak az esetleges hibák kijavítását értjük, aminek eredményeképp egy kódszót kapunk. Az üzenetvektor visszanyeréséhez még el kell ugyan végezni a kódolás inverz m veletét, ez azonban rendszerint triviális lépés, szisztematikus 9

kód esetén például csak el kell hagyni a kódszó egy részét (a végét). Szisztematikus kód esetén a generátormátrix is egyértelm, mégpedig G = ( I k B ) alakú, ahol I k a k k méret egységmátrix, B pedig k (n k) méret mátrix. Az µ üzenethez tartozó c kódszó szerkezete tehát: c = (µ 1,..., µ k, c k+1, c k+2,..., c n ) A c els k koordinátájából álló szegmensét üzenetszegmensnek, az utolsó n k koordinátájából álló paritásszegmensnek nevezzük. A lineáris kódok további tulajdonságai elvezetnek az ígért egyszer hibadetektáláshoz illetve hibajavításhoz. 8. Deníció. Ha egy n k sorból és n oszlopból álló H mátrixra Hc T = 0 akkor és csak akkor, ha c C, akkor H-t a C kód paritásellen rz mátrixának nevezzük. H segítségével tehát meg tudjuk állapítani, hogy egy vett szó valóban kódszó-e. 2. Tétel. Legyen G a C lineáris kód generátormátrixa, H a C lineáris kód paritásellen rz mátrixa. Ekkor HG T = 0. Bizonyítás. Jelölje Q k a k hosszú bináris sorozatok halmazát. Ekkor minden µ Q k - hoz létezik c C, amire c = µg Ugyanakkor c C miatt azaz Hc T = 0 Hc T = H ( µg ) T = HG T µ T = 0 Az utóbbi egyenl ség csak úgy állhat fent minden µ Q k -ra, ha HG T = 0. Ez pedig pontosan a tétel állítása. Az el z tétel alapján szisztematikus generátormátrix felhasználásával könnyen el állíthatjuk a kód egy paritásellen rz mátrixát. Keressük H-t H = ( A In k ) alakban. A tétel állítása alapján HG T = ( A In k ) [ ( Ik B ) ] T = A + B T = 0. 10

Azaz A = B T kell teljesüljön. Binális esetben B T = B T A következ kben a súly fogalmát deniálom, majd megmutatom, hogy lineáris kódoknál a minimális súly a kódtávolsággal egyenl. 9. Deníció. Legyen c = (c 1,..., c n ) C. A c C vektor súlya ω(c) = { i : c i 0, i = 1,..., n }, vagyis a c C vektor súlya a koordinátái között lév nem nulla elemek száma. 10. Deníció. Egy C kód minimális súlyán az ω min = min ω(c), ahol c 0. c C 3. Tétel. Ha C lineáris kód, akkor a kódtávolsága megegyezik a minimális súlyával. d min = ω min Bizonyítás. d min = min c c d(c, c ) = min c c ω(c c ) = min c 0 ω(c ) = ω min, ahol az utolsó el tti egyenl ség felírásakor a C kód linearitását használtuk ki, ebb l következik ugyanis, hogy c = c c is kódszó, továbbá az is, hogy minden kódszó el áll ilyen különbség alakjában. (Utóbbi ahhoz szükséges, hogy a minimum képzésekor valóban minden c C-t gyelembe vehessünk.) A tétel jelent sége abban áll, hogy segítségével a d min deníció alapján történ kiszámításához szükséges C ( C 1) 2 m veletet az ω min kiszámításához szükséges C 1 m veletre redukáljuk. 2.2. Szindróma dekódolás A H paritásellen rz mátrix hasznosnak bizonyul dekódolás során. 11. Deníció. Legyen c az adott kódszó, v a vett szó. Jelölje ε = c v a hibavektort. Ekkor a σ mennyiséget szindrómának nevezzük, ahol σ = εh T. 11

1. Megjegyzés. A Hv T értéke csak a hibavektortól függ, a kódszótól nem, ugyanis Hv T = H(c + ε) T = Hc T + Hε T = Hε T. A szindróma tehát a hibavektor egy lineáris leképzése. A dekódolás leggyakoribb módja a szindróma dekódolás. A fentiek alapján a dekódolás a következ képpen mehet végbe: a vett v szóból kiszámítjuk a σ T = Hv T = Hε T szinndrómát, ennek alapján megbecsüljük a hibavektort, és ezt v-b l levonva megkapjuk a kódszóra vonatkozó becslésünket. A szindrómának hibamintára történ leképzési módját táblázatba szokás foglalni, az un. standard elrendezési táblázatba. Valamely ε hibaminta által generált mellékosztály az ε + c, c C(n, k) vektorok halmaza. Adott mellékosztály elemeihez azonos szindróma tartozik. Az ε = 0 zérus hibavektorhoz tartozó mellékosztály a C(n, k) kóddal azonos.ha egy ε hibaminta ε = ε +c alakba írható fel, akkor a két hibaminta (ε és ε ) azonos mellékosztályt generál. Azonos mellékosztályba tartozó hibaminták közül válasszuk ki a legkisebb súlyút, s azt mellékosztályvezet nek nevezzük. Ennek megfelel en a standard elrendezési táblázat az alábbi struktúrájú: Mellékosztályvezet {}}{ ε (0) = 0 c (1) c (2k 1) σ (1) ε (1) c (1) + ε (1) c (2k 1) + ε (1) Szindróma {}}{ σ (0).. σ (2n k 1) ε (2n k 1) }{{} Mellékosztály elemek. c (1) + ε (2n k 1) }{{} Mellékosztály elemek... }{{} Mellékosztály elemek. c (2k 1) + ε (2n k 1) }{{} Mellékosztály elemek Az ω ( ε (i+1)) ω ( ε (i)), ε (0) = 0, i = 0, 1,..., 2 n k 2 a szokásos sorrend. 2. Megjegyzés. A fenti táblázat elemei különböz ek. Bizonyítás. Egy soron belül ez nyilvánvaló. Különböz sorokat tekintve tegyük fel, hogy ε (i) + c (j) = ε (k) + c (l) ahol i > k. Ebb l ε (i) = ε (k) + c (l) c (j) = ε (k) + c (n) következik, ahol c (l), c (j), c (n) C(n, k), ezért ε (i) -nek is az ε (k) mellékosztályvezet j sorba kell lennie, ami ellentmondás kiindulási feltételünknek. Az ε (i), i = 1,..., 2 n k 1 mellékosztályvezet ket javítható hibamintáknak nevezzük, ugyanis ha a v vett szó szindrómája σ (i), akkor a c = v ε (i) kódszóra döntünk. A szindróma dekódolásnak ezt az els sorban elvi módját táblázatos dekódolásnak nevezzük. (Megjegyzem, hogy a fenti dekódolási módszer nembináris ábécé esetére történ kiterjesztésekor 2 n k helyett q n k áll.) A szindrómát használó táblázatos dekódoló tárja a vizsgált bináris esetben 2 n k darab hibavektort tartalmaz, és a táblázat elemeit a szindróma segítségével címezzük. Következésképpen a táblázatos módszer a gyakorlatban addig használható, amíg gyorselérés tárunk mérete lehet vé teszi a javítható hibaminták tárolását. 12

2.2.1. A binális Hamming-kód Illusztrációként egy klasszikusnak számító kódot mutatok be, mely bináris Hammingkód néven ismeretes. A konstrukció az alábbi tételen alapul: 4. Tétel. C lineáris kód kódtávolsága legalább akkor és csak akkor, ha a paritásellen rz mátrixa tetsz legesen választott 1 oszlopa lineárisan független. A fenti tétel alapján 1-hibát javító bináris kódot kapunk, ha H tetsz leges két oszlopa lineárisan független, azaz oszlopai különböz k. Mivel a különböz, nemzérus n k hosszú bináris vektorok száma 2 n k 1, ezért ezen vektorokat használva a H mátrix különböz oszlopaiként, az n = 2 n k 1 összefüggésre jutunk, ami azt is jelenti, hogy a kapott kód perfekt tulajdonságú. Ennek alapján bináris Hamming-kód paraméterei az alábbi számpárok (d min = 3): n k 3 1 7 4 15 11 31 26 63 57 127 120 13

3. fejezet Véges test Hatékony hibajavító kódok konstrukciójához szükséges, hogy a nembináris Q kódábécé strukturált legyen, mely például úgy lehetséges, hogy m veleteket vezetünk be Q-n. A fejezet elkészítésekor felhasznált szakirodalom: [1], [2], [3], [4], [5] 12. Deníció. Egy Q halmazt testnek nevezünk, ha értelmezve van tetsz leges két elem között két m velet, amelyeket összeadásnak illetve szorzásnak nevezünk, + illetve szimbólumokkal jelölünk, és Q rendelkezik a következ tulajdonságokkal: 1. Q az összeadásra nézve kommutatív csoport. Minden α, β Q estén α + β Q, tehát Q az összeadásra nézve zárt. Minden α, β, γ Q esetén α + (β + γ) = (α + β) + γ, vagyis az összeadás asszociatív. Létezik a Q-nak az összeadásra nézve neutrális eleme, 0 Q, melyre minden α Q-ra α + 0 = 0 + α = α. Ezt a neutrális elemet nullelemnek nevezzük. Minden α Q elemhez létezik β Q, hogy α + β = 0. Ezt a β elemet az α additív inverzének nevezzük, és α-val jelöljük. Minden α, β Q estén α + β = β + α (kommutativitás). 2. Q \ {0} a szorzásra nézve kommutatív csoport. Minden α, β Q \ {0} estén α β Q, tehát Q a szorzásra nézve zárt. Minden α, β, γ Q \ {0} esetén α (β γ) = (α β) γ, vagyis az szorzás asszociatív. Létezik a Q \ {0}-nak a szorzásra nézve neutrális eleme, 1 Q \ {0}, melyre minden α Q \ {0}-ra α 1 = 1 α = α. Ezt a neutrális elemet egységelemnek nevezzük. Minden α Q\{0} elemhez létezik β Q\{0}, hogy α β = 1. Ezt a β elemet az α multiplikatív inverzének nevezzük, és α 1 -zel jelöljük. Minden α, β Q \ {0} estén α β = β α (kommutativitás). 14

3. Minden α, β, γ Q esetén α 0 = 0 α = 0 és α (β + γ) = (α β) + (α γ) (disztributivitás). Egyszer konvenciókkal egy Q testben deniálható a kivonás és az osztás a következ módon: α β alatt az α-nak és β additív inverzének összegét értjük, azaz α + ( β)- t. α β alatt α-nak és β multiplikatív inverzének a szorzatát értjük, azaz α β 1 -t értjük, amennyiben β 0. Test példálul a valós számok halmaza a valós összeadással és szorzással, a racionális számok halmaza a valós összeadással és szorzással, a komplex számok halmaza a komplex összeadással és szorzással és a {0, 1} halmaz a (mod 2) összeadással és szorzássa. 13. Deníció. Legyen q N, Q test, melyre Q = q <. Ekkor Q-t véges testnek nevezzük és GF(q)-val jelöljük. Miel tt a véges testek aritmetikáját tárgyalnám, néhány a továbbiakban felhasznált fontos tulajdonságukat ismertetem. 5. Tétel. GF(q) esetén q = p m alakú, ahol p prímszám, tehát q vagy prímszám, vagy prímhatvány. 1. Lemma. Minden 0 α GF(q)-ra α q 1 = 1 2. Lemma. Minden 0 α GF(q)-ra létezik egy legkisebb m N (ezt az m számot az α elem rendjének nevezzük és o(α)-val jelöljük), melyre α m = 1 m = 0 (mod q 1), és minden i j esetén (i = 1,..., m, j = 1,..., m) α i α j. 14. Deníció. Egy α GF(q)-t a GF(q) primitív elemének nevezzük, ha o(α) = q 1. 6. Tétel. Minden GF(q)-ban létezik primitív elem. 15

3.1. Aritmetika GF(p)-ben 7. Tétel. A G = {0, 1,..., p 1} halmaz a (mod p) aritmetikával egy p prímszám esetén véges test, azaz a testm veletek a + b := a + b (mod p), a b := a b ahol + és jelöli a valós összeadást illetve szorzást. (mod p), A primitív elem egyrészt igen fontos hatékony kódok konstrukciójakor, másrész GF(q)- beli szorzások és osztások elvégzésekor. Ha α a GF(q) egy primitív eleme, akkor bevezethetjük egy a GF(q) testelem α alapú logaritmusát az α loga = a egyenlet (egyértelm ) megoldásával, ahol a 0. Ha a, b GF(q) nemnulla elemei, akkor a b = α loga α logb = α loga+logb, tehát egy α alapú logaritmustábla és egy inverzlogaritmus-tábla segítségével a szorzás (illetve az osztás) visszavezethet valós összeadásra (illetve kivonásra). A következ kben nagyon hasznosnak bizonyulnak a GF(q) feletti polinomok, így többek között egy fontos kódcsalád (a ciklikus kódok) leírásában, illetve a prímhatvány méret véges testek aritmetikája generálásakor fogom használni ket. 3.2. Véges test feletti polinomok GF(q) feletti vektorok reprezentálására, és vektorok közötti szorzás kényelmes bevezetésére egy célszer eszköz a polinomreprezentáció: 15. Deníció. Az α(x) GF(q) feletti m-ed fokú polinom, ha α(x) = m α i x i i=0 α i GF(q) i {0,..., m} a m 0 x GF(q) A fenti α(x) polinom m fokszámát degα(x) jelöli. Deníció szerint α(x) = 0, akkor degα(x) =. 16

16. Deníció. α(x) = β(x) akkor és csak akkor, ha α i = β i minden i {0,..., m}-re 17. Deníció. M veletek polinomok között: Polinomok összeadása: γ(x) = α(x) + β(x) tagonként történik GF(q) feletti m veletekkel. γ i = α i + β i. degγ(x) max{degα(x), degβ(x)} Polinomok szorzása: γ(x) = α(x)β(x) minden tagot minden taggal szorzunk, majd az azonos fokú tagokat csoportosítjuk (az összeadások és szorzások GF(q) felettiek). γ i = min{i,degα(x)} j=0 a j b i j degγ(x) = degα(x) + degβ(x) 8. Tétel (Euklidészi osztás polinomokra). Adott α(x) és δ(x) 0 polinomok esetén egyértelm en létezik olyan q(x), r(x) polinomok, melyekre és degr(x) < degδ(x). α(x) = q(x)δ(x) + r(x), 18. Deníció. r(x)-et az α(x)-nek δ(x)-re vonatkozó maradékának nevezzük. ( ) r(x) = α(x) mod δ(x) 19. Deníció. A δ(x) polinom osztja az α(x) polinomot, ha α(x) = 0 ( mod δ(x) ). Ezt δ(x) α(x) jelöli. 20. Deníció. Egy ξ GF(q) gyöke az α(x) polinomnak, ha α(ξ) = 0 9. Tétel. Ha ξ GF(q) gyöke az α(x) polinomnak, akkor α(x) el áll α(x) = β(x)(x ξ) alakban. 10. Tétel. Legyen α(x) k-adfokú polinom, azaz Ekkor k α(x) = α i x i α k 0. i=0 {ξ GF(q) : α(ξ) = 0} k 17

3.3. Aritmetika GF(p m )-ben Lényeges különbség van a prím illetve a prímhatvány méret testek aritmetikája között. Prím méret testben a modulo aritmetika megfelelt. Prímhatvány méret esetén sajnos a modulo aritmetika nem teljesíti a testaxiómákat, például egy 4 elem halmazban 2 2 = 0 (mod 4), tehát két nemnulla elem szorzata 0 lenne, ami axiómát sért. A GF(p m ) feletti aritmetika konstrukciója azért alapvet fontosságú, mert manapság a hibajavító kódokat tömegesen alkalmazzák számítástechnikai környezetben, ahol a természetes ábécé a GF(2 8 ), vagyis a bájt. A GF(p m )-beli elemek legyenek 0,..., p m 1 számok, melyeknek m hosszú vektorokat feleltetünk meg, ahol a koordináták GF(p)-beliek. Ezt megfogalmazhatjuk például úgy is, hogy a 0,..., p m 1 számokat p alapú számrendszerben írjuk fel. Ezek után a GF(p m )- beli aritmetikát m hosszú vektorok közötti m veletekkel deniáljuk. A két m velet közül az összeadás az egyszer bb: két vektor összegén a koordinátánkénti GF(p)-beli összeget értjük, vagyis a koordinátánkénti mod(p) összeget. A szorzás egy kicsit bonyolultabb. A két m hosszú vektort legfeljebb m 1-ed fokú polinom formájában reprezentáljuk, és összeszorozzuk. Az eredmény fokszáma meghaladhatja m 1-et, ezért itt egy speciális polinom szerinti maradékot képzünk. Ezt a speciális polinomot irreducíbilis polinomnak nevezzük, és ez a polinom ugyanolyan szerepet játszik, mint a prímszám a GF(p)-beli aritmetikában. 21. Deníció. A GF(p) feletti, nem nulladfokú P (x) polinomot irreducibilis polinomnak nevezzük, ha nem bontható fel két, nála alacsonyabb fokú GF(p) feletti polinom szorzatára, azaz nincs GF(p) feletti α 1 (x), α 2 (x) polinom, melyekre P (x) = α 1 (x)α 2 (x) és 0 < deg ( α i (x) ) < deg ( P (x) ) i {1, 2}. 3. Megjegyzés. Minden véges testben található tetsz leges fokszámú irreducibilis polinom. Példát mutatok arra, hogy hogyan lehet GF(2) feletti irreducibilis polinomokat generálni. A denícióból következik, hogy minden els fokú polinom (x és x + 1) irreducibilis. Ha találunk olyan másodfokú polinomot, mely különbözik az x 2, az x(x + 1) és az (x + 1) 2 mindegyikét l, akkor találtunk irreducibilis másodfokú polinomot. Egy ilyen van: x 2 + x + 1 Más testben és nagyobb fokszámok esetén ennél hatékonyabb konstrukciókat érdemes használni, de bináris esetben így is találhatók irreducibilis polinomok, amelyeket táblázatban foglalok össze: 18

Fokszám Irreducibilis polinom 2 x 2 + x + 1 3 x 3 + x + 1 4 x 4 + x + 1 5 x 5 + x 2 + 1 6 x 6 + x + 1 7 x 7 + x 3 + 1 8 x 8 + x 4 + x 3 + x 2 + 1 9 x 9 + x 4 + 1 11. Tétel. Legyen p egy prím, m egy természetes szám, P (x) egy GF(p) feletti m-edfokú, irreducibilis polinom, és Q = {0,..., p m 1}. Egy α Q és β Q elemeknek kölcsönösen egyértelm en feleltessük meg GF(p) feletti, legfeljebb (m 1)-edfokú α(x) és β(x) polinomokat. α + β deníció szerint az a γ Q, melynek megfelel γ(x) polinomra γ(x) = α(x) + β(x). α β deníció szerint az a δ Q, melynek megfelel δ(x) polinomra δ(x) = α(x)β(x) ( mod P (x) ). Ezzel az aritmetikával Q egy GF(p m ). 19

4. fejezet Nembináris lineáris kód Ebben a szakaszban a kódok egy fontos csoportjával ismerkedek meg, melyek a már megismert bináris lineáris kódok kiterjesztései nembináris esetre. A továbbiakban a kódjainkban szerepl kódszavakat alkotó szimbólumokat vegyük GF(q)-ból, a lehetséges szimbólumok tehát a {0,..., q 1} számoknak feleltethet k meg. A fejezet elkészítésekor felhasznált szakirodalom: [1], [2], [3], [4], [5] 22. Deníció. Egy C kód lineáris, ha C halmaz lineáris tér GF(q) fölött, azaz minden c, c C esetén c + c C, illetve µ GF(q) esetén µc C. Itt is hasonló módon belátható, hogy tetsz leges C lineáris kódhoz létezik egy k lineárisan független sorból és n oszlopból álló G mátrix, melyre c = ug, ahol a k hosszú u üzenethez a c kódszó tartozik, és a G mátrixot a C kód generátormátrixának nevezzük. A bináris esethez hasonlóan a C lineáris kódhoz egy n k sorból és n oszlopból álló H mátrixot paritásellen rz mátrixnak nevezzük, amennyiben Hc T = 0 akkor és csak akkor teljesül, ha c C. A bináris eset másolataként kapjuk, hogy 12. Tétel. Minden lineáris C kódnak létezik paritásellen rz mátrixa. Példaként bemutatom a nembináris Hamming-kódot. Ismét 1-hibát javító kódot konstruálok. A bináris esetben a hiba javításához elég volt ismerni a hiba helyét, amihez elégséges volt, ha a H paritásellen rz mátrix minden oszlopa különböz. Nembináris esetben 20

nem csak a hiba helyét, hanem a hiba értékét is meg kell állapítani, ezért a H mátrix oszlopait úgy választom, hogy azok nem 0-k, mind különböz k legyenek, és az els nem 0 elem miden oszlopban 1 érték legyen. Ekkor, ha egy hiba az i-edik helyen fordul el és értéke ε i, akkor a szindróma σ = ε i h i, ahol h T i a H i-dik oszlopa. Tehát a hiba értéke, ε i éppen a szindróma els nem 0 értéke, míg h i = σ ε i, amib l az i visszakereshet. Ha H tartalmazza az összes lehetséges, a fenti módon megengedett oszlopvektort, akkor n = qn k 1 q 1, azaz 1 + n(q 1) = q n k, másrészt a Hamming-korlát miatt tehát 1 + n(q 1) q n k, 13. Tétel. A maximális hosszúságú nembináris Hamming-kód perfekt kód. A nembináris Hamming-kódok közül különösen érdekes az az eset, amikor a kód szisztematikus és a paritásszegmens hossza 2, azaz n k = 2. Legyen α GF(q) egy nem 0 elem, melynek rendje m 2. Válasszunk n (m + 2)-t és k = (n 2)-t. Ekkor a paritásellen rz mátrix: ( ) 1 1 1... 1 1 0 H = 1 α α 2... α n 3 0 1 Ez egy (n, n 2) paraméter nembináris Hamming-kód paritásmátrixa. A 10. oldal 2. tétele alapján meghatározhatjuk a C lineáris kód generátormátrixát. 1 0 0... 0 1 1 0 1 0... 0 1 α G = 0 0 1... 0 1 α 2......... 0 0 0... 1 1 α n 3 ezért Mivel ez a kód 1-hibát tud javítani, ezért d min 3, de a Singleton-korlát miatt d min n k + 1 = 3, 14. Tétel. Az (n, n 2) paraméter nembináris Hamming-kód MDS kód. 21

4.1. Lineáris kódok kib vítése és ekvivalenciája 23. Deníció. A GF(q) test feletti, n hosszú C lineáris kód kib vítettje a C kód, ha C = { (c, c n+1 ) : c = (c 1,..., c n ) C és n+1 c i = 0 (mod q) } i=1 1. Következmény. Ha a {0, 1} ábécé feletti C bináris lineáris kódra d min = k páratlan, akkor a kib vített C kódra a kódtávolság k + 1. 24. Deníció. A C lineáris kód permutáció-ekvivalens (vagy ekvivlens) a C lineáris kóddal, ha létezik egy olyan P permutáció-mátrix, melyre c C akkor, és csak akkor, ha: cp C 4.2. Reed-Solomon kód Ebben a szakaszban a lineáris kódok egyik leggyakrabban használt osztályát, a Reed- Solomon kódokat, azok különböz konstrukcióit mutatom be. 1. Konstrukció. Legyenek { α i } n 1 i=0 u = (u 0, u 1,..., u k 1 ) a k hosszúságú üzenetszegmens, amelyhez az GF(q) különböz elemei (n q), és u i GF(q) üzenetpolinomot rendeljük. k 1 u(x) = u i x i i=0 Ekkor a Reed-Solomon kódnak az u üzenethez tartozó n hosszú c kódszavát a következ módon állítjuk el : c i = u(α i ) i {0,..., n 1} c = (c 0, c 1,..., c n 1 ) A konstrukcióból látható, hogy a Reed-Solomon kód lineáris, és G generátormátrixa a következ. 1 1 1... 1 α 0 α 1 α 2... α n k G =....... α0 k 1 α1 k 1 α2 k 1... α k 1 n k 15. Tétel. Az (n, k) paraméterü Reed-Solomon kód MDS kód, melyre d min = n k + 1. 22

tehát Bizonyítás. ω(c) = { i : c i 0, i = 1,..., n } = n { i : ci = 0, i = 1,..., n } n { λ GF(q) : u(λ) = 0 } n (k 1), ω min n k + 1. Ugyanakkor a 6. oldal 1. tételét, illetve a 11. oldal 3. tételét felhasználva n k + 1 d min = ω min. Az (n, k) paraméter Reed-Solomon kód tehát n k hibát tud jelezni, n k 2 egyszer hibát javítani, és n k törléses hibát javítani. Ez utóbbi azt jelenti, hogy az u ismeretére vonatkozó ug = c n darab egyenletb l bármelyik n k egyenlet elhagyásával egy egyértelm en megoldható egyenletrendszer marad, tehát G mátrix minden k k-s négyzetes részmátrixa invertálható. 2. Konstrukció. Legyen α( 0) GF(q), melynek rendje m (m n), és az 1. konstrukcióban legyen α i = α i i {0,..., n 1}. Ekkor a generátormátrix: 1 1 1... 1 1 α α 2... α n 1 1 α 2 α 4... α 2(n 1) G =....... 1 α k 1 α 2(k 1)... α (k 1)(n 1) 23

5. fejezet Ciklikus kódok A fejezet elkészítésekor felhasznált szakirodalom: [1], [2], [3], [4], [5] 25. Deníció. Egy c = (c 0, c 1,..., c n 1 ) vektor ciklikus eltoltja a Σ-t a ciklus eltolási operátorának nevezzük. Σc = (c n 1, c 0,..., c n 2 ). 26. Deníció. A C kódot ciklikusnak nevezzük, ha bármely kódszó ciklikus eltoltja is kódszó. A ciklikus eltolás operátorát kényelmesebben tudjuk kezelni, ha a kódszavakat mint vektorokat a már megszokott polinomos formában reprezentáljuk. 27. Deníció. Rendeljünk polinomot az egyes kódszavakhoz a következ módon: n 1 c = (c 0, c 1,..., c n 1 ) c(x) = c i x i Ekkor a c kódszónak megfeleltetett c(x) polinomot kódszópolinomnak nevezzük. A kódszópolinomok halmazát jelölje C[x]. 3. Lemma. Legyen c (x) a c kódszó Σc eltoltjához rendelt kódszópolinom. Ekkor i=0 c (x) = xc(x) (mod x n 1) 16. Tétel. Minden (n, k) paraméter, ciklikus, lineáris C kódban a nem azonosan nulla kódszópolinomok között egyértelm en létezik egy minimális fokszámú g(x) normált polinom. A g(x) polinom fokszáma n k, és egy c C akkor és csak akkor, ha g(x) c(x), azaz létezik egy u(x) polinom úgy, hogy c(x) = u(x)g(x). 24

28. Deníció. A fenti g(x)-et a kód generátorpolinomjának nevezzük. 17. Tétel. Minden ciklikus, lineáris kód g(x) generátorpolinomjára g(x) x n 1. Valamint, ha egy g(x) polinomra g(x) x n 1, akkor létezik egy lineáris ciklikus kód, melynek g(x) a generátorpolinomja. A paritásellen rz mátrixnak is van polinomos megfelel je: 29. Deníció. Egy g(x) generátorpolinomú lineáris, ciklikus kód esetén a h(x) = xn 1 g(x) polinomot paritásellen rz polinomnak nevezzük. 18. Tétel. Egy lineáris, ciklikus kódra c(x) akkor és csak akkor kódszópolinom, ha c(x)h(x) = 0 (mod x n 1) és degc(x) n 1. 5.1. Ciklikus kódok szisztematikus generálása A ciklikus kódok el nyös tulajdonságai egyrészt a generálási lehet ségek sokféleségében, másrészt egyszer dekódolási eljárásokban jelentkeznek. Egy lineáris ciklikus kódot lehet például a generátorpolinom és az üzenetpolinom szorzásával generálni. Ez a módszer megfogalmazható egy olyan G generátormátrix segítségével is, amelyhez legegyszer bben úgy juthatunk el, ha G sorai a g(x)-nek megfelel vektor eltoltjai: g 0 g 1 g 2... g n k 1 1 0... 0 0 0 g 0 g 1... g n k 2 g n k 1 1... 0 0 G =........... 0 0 0... g 0 g 1 g 2... 1 0 0 0 0... 0 g 0 g 1... g n k 1 1 kihasználva, hogy g(x) polinom, így g n k = 1. Egy másik generálási módszer kapcsán azt is megmutatom, hogy 19. Tétel. Minden lineáris ciklikus kód generálható szisztematikusan. 25

Bizonyítás. Vegyük észre, hogy g 0 0, mert ha 0 lenne, akkor a g-t balra eltolva egy g-nél egyel kisebb fokszámú kódszópolinomot kapnánk, ami lehetetlen. g 0 0 miatt viszont a Gauss-eliminációt balról jobbra végrehajtva szisztematikus generátormátrixot kapunk. A szisztematikus generálás egy praktikus módszere a következ : Legyen u(x) egy legfeljebb (k 1)-edfokú üzenetpolinom, p(x) a paritás részt. c(x) = u(x)x n k + p(x) Mivel a c(x) kódszópolinomnak oszthatónak kell lennie g(x)-szel, így c(x) = 0 ( mod g(x) ). Tekintettel arra, hogy deg ( p(x) ) n k 1, és deg ( g(x) ) = n k, így p(x) = u(x)x n k ( mod g(x) ) Ezen generálás szisztematikus: a c(x)-et deniáló egyenl ség jobb oldalának els tagja adja az üzenetszegmenst, míg a második tagja a paritásszegmenst. 5.2. Ciklikus Reed-Solomon kód A Reed-Solomon kód legfontosabb gyakorlati el állítási módja a 20. tételen alapszik. 20. Tétel. A Reed-Solomon kódok esetén legyen a kódszó n hossza egyenl az ott szerepl α elem m rendjével. Ekkor a kód ciklikus, és generátorpolinomja továbbá paritásellen rz polinomja n k g(x) = (x α i ), h(x) = i=1 n i=n k+1 tehát a nem rövidített Reed-Solomon kód ciklikus. (x α i ), 21. Tétel. A 20. tétel Reed-Solomon kódjának paritásellen rz mátrixa: 1 α α 2... α n 1 1 α 2 α 4... α 2(n 1) H =....... 1 α n k α 2(n k)... α (n 1)(n k) 26

6. fejezet A Golay-kódok A fejezet elkészítésekor felhasznált szakirodalom: [2], [6], [7], [8], [9], [10] 6.1. Blokkrendszerek 30. Deníció. Legyen H = v, H 2 H, melyre minden B H esetén B = k, továbbá H minden t elem részhalmazát H-nak pontosan λ eleme tartalmazza. Ekkor a (H, H) halmazrendszer t (v, k, λ)-blokkrendszer. H elemeit blokkoknak, H elemeit pontoknak nevezzük 4. Lemma. Legyen C egy 0-t tartalmazó e-hibajavító bináris perfekt kód. Továbbá legyen (H, H) halmazrendszer, melyre H elemei a koordináta-pozíciók, H 2 H elemei a minimális súlyú kódszavak tartói. Ekkor a (H, H) halmazrendszer (e + 1) (n, 2e + 1, 1)- blokkrendszer. Bizonyítás Tudjuk, hogy H = n. Egy h H legyen eleme pontosan akkor egy B H blokknak, ha a B-hez tartozó kódszóban az adott helyen 1 érték szerepel. Ekkor minden B H blokkra igaz, hogy B = 2e + 1. Legyen H H, melyre H = e + 1. Ez a H egy e + 1 súlyú szó. Minden ilyen H szóhoz egyértelm en létezik olyan h kódszó a perfektség miatt, melyre d( H, h) e. Mivel e-nél közelebb csak 2e + 1 súlyú szavak vannak, melyek nem kódszavak, így d( H, h) = e teljesül. Azokon a helyeken, ahol az e + 1 súlyú szóban 1 érték szerepel, ott a hozzá tartozó 2e + 1 súlyú kódszóban is 1-nek kell szerepelnie, ellenkez esetben kisebb lenne a súlya, azaz bármely e + 1 koordináta-pozícióhoz létezik egyértelm en egy blokk, mely tartalmazza. 27

4. Megjegyzés. Tetsz leges t (v, k, λ) blokrendszerre teljesül, hogy ( v H = ( t) k t)λ. 1. Állítás. Egyértelm en létezik a 2 (11, 5, 2) blokkrendszer. Bizonyítás. Az állításban szerepl létezésre bizonyíték a Paley-féle konstrukció. 3. Konstrukció (Paley-féle konstrukció). Legyen H = {k Z : 0 k 10}. Legyen S = {0, 1, 3, 4, 5, 9} H a kvadratikus maradékok, valamint H = {S + i i H}. Ekkor (H, H) 2 (11, 5, 2) blokkrendszer. Az egyértelm ség bizonyításához el ször vezessük be a következ jelölést: S i = S + i i H Tekintsük minden halmaz komplementerét, melyet jelöljön rendre S i = H \ S i. Az így kapott S halmazrendszer minden S i S elemére: S i = 5 és minden i j esetén S i S j = 2 Sj S Most tegyük fel, hogy léteznek az s 1, s 2 pontok, melyeket három halmaz is tartalmaz, vagyis {s 1, s 2 } S l S m S n. Az tudjuk, hogy bármely két halmaz metszete két elem, így S l \ {s 1, s 2 }, Sm \ {s 1, s 2 }, Sn \ {s 1, s 2 } halmazok páronként diszjunktak, és mivel S l = S m = S n = 5, így S l S m S n = 11. Most tekintsünk egy eddigiekt l különböz S j halmazt, és S j {s 1, s 2 } elemszámát. 1. eset S j {s 1, s 2 } = 0, ekkor S j = 6. 2. eset S j {s 1, s 2 } = 1, ekkor S j = 4. 3. eset S j {s 1, s 2 } = 2, ekkor S j = 2. Mind a három eset ellentmondás, ami azt jelenti, hogy bármely {s 1, s 2 } pontpárt legfeljebb két halmaz tartalmaz. Most számoljuk meg az {(s 1, s 2, S i ) : s 1 s 2 S i } halmaz elemszámát. Ez egyrészt 11 5 4, mert 11 halmazból 5, illetve 4 féleképpen választhatok ki s 1 -t és s 2 -t. Másrészt legfeljebb 11 5 4, mert tetsz leges két pontot legfeljebb két halmaz tartalmaz. Összegezve a kapott eredményeket, tetsz leges két pontot pontosan kett halmaz tartalmaz. Most deniáljunk hat darab gráfot a következ módon (Hussain-gráf): minden s / S 1 esetén deniáljuk a G s (V s, E s ) gráfot S 1 -en úgy, hogy a (v 1, v 2 ) E s él, abban az esetben, ha (v 1, v 2 )-re illeszked, S1 -t l különböz halmaz átmegy s-en. Azt az el bb láttuk, hogy bármely két pontra pontosan két halmaz illeszkedik, így különböz s és s esetén a G s (V s, E s ) G s (V s, E s ) az {s, s }-re illeszked két halmaz metszete S 1 -gyel, vagyis E s E s = 2. Továbbá vegyük észre, hogy tetsz leges v 1 S 1 két szomszédja G s (V s, E s ) gráfban az s-re és v 1 -re illeszked két halmaz metszete S 1 -gyel, így G s (V s, E s ) gráf minden pontjának foka 2. Az így deniált gráfokból egyértelm en visszavezethet ek a halmazok, ugyanis egy {v 1, v 2 } S 1 meghatározza a {v 1, v 2, s 1, s 2, s 3 } halmazt, ahol (v 1, v 2 ) G si (V si, E si ), 28

i {1, 2, 3}. Minegyik gráf 5 csúcsának a foka 2, vagyis a gráf nem más, mint egy 5 hosszú kör. Legyen G s1 (V s1, E s1 ) az a gráf, melyre: V s1 = {1, 2, 3, 4, 5} E s1 = {(1, 2), (2, 3), (3, 4), (4, 5), (5, 1)} Mindegyik gráf ezekb l pontosan két élt tartalmaz, de ezek nem lehetnek szomszédosak, mert akkor tartalmaznia kellene a szomszédos élekkel szemközti éleket is, ami nem lehetséges, tehát csak két nem szomszédos élt tartalmazhatnak, ami egyértelm en meghatározzák a többi gráfot. Konkrétan a hat gráf az {(1, 3), (3, 2), (2, 5), (5, 4), (4, 1)} gráf és ennek elforgatottjai. Ezzel beláttuk, hogy a Hussain-gráfok rendszere egyértelm, amib l következik a blokkrendszer egyértelm sége. 2. Következmény. Mivel egy 2 (11, 5, 2) blokkrendszer komplementere (H, {H \ B : B H}) 2 (11, 6, 3) blokkrendszer, és fordítva, így ez is egyértelm. 5. Megjegyzés. Ha H 2 H egy t (v, k, λ) blokkrendszer, és A H, A = a t, akkor (H \ A, {B \ A : B H, A B}) egy (t a) (v a, k a, λ) blokkrendszer. 6.2. A bináris Golay-kód Tekintsük a C, {0, 1} ábécé feletti, 24 hosszú, 2 12 elem, 8 kódtávolságú lineáris kódot (röviden a (24, 2 12, 8) 2 paraméter lineáris kódot). Próbáljuk el állítani C egy "szép" bázisát a következ módon: Legyen c 1 C tetsz leges kódszó, melyre és ω(c 1 ) = 12. Tegyük fel, hogy a c 1 C kódszó koordinátái úgy vannak permutálva, hogy c (s) 1 = 0 s S = {2,..., 13} c (k) 1 = 1 k K \ S, ahol K = {1,..., 24}. Tekintsük minden c i C kódszó S koordináta-halmazra vetítettjét, vagyis minden c i C kódszó esetén a m S c (m) i számot. Az így kapott kód 12 hosszú, és bármely c C kódszóra c és c + c 1 vetítettje ugyanaz, másnak viszont nem lehet ugyanez a vetítettje, ha ugyanis a 0 szót kapjuk, akkor az eredeti c nem lehet 8 súlyú, mert akkor c + c 1 4 súlyú szó lenne, tehát csak 0, vagy 12 súlyú lehet, vagyis 0 vagy c 1 maga. Tehát az így kapott C kód 11 dimenziós. Bármely c m C kódszóra 2 ω( c m ), 29

mert minden szó súlya eredetileg is páros volt, és c, c 1 = 0 minden c C esetén. A kapott kód [12, 11, 2] paraméter és minden páros súlyú szót tartalmaz. Most válasszuk c 2,..., c 12 kódszavakat úgy, hogy a c i i-edik és 13-dik helyen 1 érték áll, vetítettje többi helyén 0. Mivel c i helyett c i + c-t is vehetjük, ezért feltehetjük, hogy a c 2,..., c 12 kódszavak els koordinátája 0. Az így kapott 12 vektor C bázisa, mert lineárisan függetlenek az els 12 koordináta miatt. Most tekintsük c 2,..., c 12 kódszavak utolsó 11 koordinátáját. Ezt a 11 vektort jelölje a 2,..., a 12. Mivel ω(c i ) 8, így ω(a i ) = 6 vagy ω(a i ) = 10. Ha ω(a i ) = 10 valamely i {2,..., 12} esetén, akkor ω(c 1 +c i ) = 4, ami ellentmondás, vagyis: ω(a i ) = 6 i {2,..., 12} így Jelölje Ekkor supp(a i ) = { a (l) i : a (l) i = 1 l {2,..., 12} } x = supp(a i ) supp(a j ) ω(c i + c j ) = 2 + (6 x) + (6 x) = 14 2x x = 1 vagy x = 3 Ha x = 1 lenne, akkor ω(c + c i + c j ) = 4 lenne, így x = 3 a helyes megoldás, vagyis supp(a i ) halmazok mindegyike egy 11 elem halmaz 6 elem részhalmaza, és bármely kett metszete 3 elem. A fentieket felhasználva megalkothatjuk C egy bázisát: 31. Deníció. Legyen I 12 {0, 1} 12 12 egység-mátrix, A {0, 1} 12 12. 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 1 0 0 0 1 0 1 1 0 A = 1 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 A T = A 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 Ekkor a G = ( I 12 A ) {0, 1} 12 24 mátrix által generált bináris, lineáris kód a kib vített Golay-kód, melyet G 24 jelöl. 30

A 33. denícióból következik, hogy a G 24 kód hossza 24, és dim(g 24 ) = 12. 2. Állítás. A kib vített G 24 Golay-kód paritásellen rz -mátrixa H = ( A I 12 ) {0, 1} 12 24 Bizonyítás. A 2. tételt felhasználva adódik az állítás. 32. Deníció. Az x = (x 1,..., x n ) és y = (y 1,..., y n ) bináris kódszavak ortogonálisak, ha n x, y = x i y i = 0 (mod 2) i=1 5. Lemma. Legyen x és y bináris kódszó, melyre 4 ω(x) és 4 ω(y). Ekkor 4 ω(x+y) akkor és csak akkor, ha x és y ortogonálisak. és Bizonyítás. Legyen c = supp(x) supp(y). Ekkor Mindkét állítás páros c esetén teljesül. ω(x + y) = ω(x) + ω(y) 2c x, y = c (mod 2) 3. Állítás. A kib vített G 24 Golay-kód önortogonális. G 24 = G 24 Bizonyítás. Legyen G 24 kód generátor-mátrixának tetsz leges két sora g i és g j. A fejezet elején leírt konstrukcióból adódik, hogy 4 ω(g i ) és 4 ω(g j ), vagyis teljesülnek az 5. lemma feltételei, azaz G bármely két sora ortogonális, vagyis supp(g i ) supp(g j ) érték páros, G 24 kód lineáris, Ezzel beláttuk, hogy G 24 G 24. Azt láttuk, hogy dim(g 24 ) = 12, így vagyis G 24 = G 24. G 24 = 2 12. dim(g 24) = 24 dim(g 24 ) = 24 12 = 12, 3. Következmény. G 24 paritásellen rz -mátrixa H = ( I 12 A ) 31

4. Következmény. G 24 generátor-mátrixa G = ( A I 12 ) 4. Állítás. Legyen c G 24 tetsz leges kódszó. Ekkor: 4 ω(c) Bizonyítás. Egy c G 24 kódszóról tudjuk, hogy az a G 24 kód G generátor-mátrix sorainak egy lineáris kombinációja. 1. eset: Legyen c G 24 kódszó a G generátor-mátrix egy sora. Mivel a G generátormátrix sorainak súlya 8 vagy 12, így triviálisan teljesül, hogy 4 ω(c). 2. eset: Most legyen g i és g j a G generátor-mátrix két tetsz leges sora, és tegyük fel, hogy c = g i +g j. Ekkor azt kell megmutatni, hogy 4 ω(g i +g j ). Tudjuk, hogy G generátormátrix sorainak súlya 4 töbszöröse, valamint bármely két sora ortogonális egymásra, így alkalmazható az 5. lemma, azaz: 4 ω(c) Innen indukcióval adódik az állítás. 5. Állítás. A kib vített G 24 Golay-kódra: d min = 8 Bizonyítás. A 4. állítás alapjána a kib vített G 24 Golay-kódra d min = 4 vagy d min = 8. Most tekintsük G 24 egy nemnulla v kódszavát, melyre ω(v) = 4. Írjuk fel v G 24 kódszót (v 1, v 2 ) alakban, ahol a v 1 12-dimenziós vektor v els 12 koordinátája, a v 2 12-dimenziós vektor v utolsó 12 koordinátája. Ekkor a következ esetekfordulhatnak el : 1. eset: ω(v 1 ) = 0 és ω(v 2 ) = 4. Ez az eset nem fordulhat el, mert ha megnézzük a G 24 kód G generátor-mátrixát, az egyetlen 0 súlyú szó a 0. 2. eset: ω(v 1 ) = 1 és ω(v 2 ) = 3. Ebben az esetben v kódszó a G generátor-mátrix egy sora kell, hogy legyen, ami ismét ellentmondás. 3. eset: ω(v 1 ) = 2 és ω(v 2 ) = 2. Ekkor v kódszó a G generátor-mátrix két különböz sorának összege. Könnyen látható, hogy semelyik két sor összegére nem fordulhat el, hogy ω(v 2 ) = 2, mert az ilyen sorok súlya 8 vagy 12. 4. eset: ω(v 1 ) = 3 és ω(v 2 ) = 1. Jelölje G = ( A I 12 ) {0, 1} 24 12 mátrixot, ami szintén generátormátrix. Ebben az esetben v kódszó a G generátor-mátrix egy sora, így itt a 2. eset fordul el. 5. eset: ω(v 1 ) = 4 és ω(v 2 ) = 0. Ez az eset megegyezik az 1. eset-tel, mikor a kód generátor-mátrixa a G. A fent leírt 5 eset mindegyikében ellentmondásra jutottunk, így a d min = 4 eset nem lehetséges, vagyis szükségképp d min = 8. Az el bb megmutattam, hogy a kib vített G 24 Golay-kódra d min = 8. Az 1.1. képlet d alapján egyszer hibázás esetén min 1 hiba javítható. Elvégezve a helyettesítést kapjuk, 2 hogy 32

6. Állítás. A kib vített G 24 Golay-kód 3-hibajavító kód. 33. Deníció. Legyen I 12 {0, 1} 12 12 egység-mátrix, Ā {0, 1} 12 11. 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 Ā = 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 0 0 Ekkor a Ḡ = ( I 12 Ā) {0, 1} 12 23 mátrix által generált kód a bináris Golay-kód, melyet G 23 jelöl. 6. Megjegyzés. A bináris G 23 Golay-kód 23 hosszú, 12 dimenziós és paritásellen rz mátrixa H {0, 1} 12 23 H = (ĀT I 11) 7. Megjegyzés. A bináris G 23 Golay-kód kib vítettje egy paritásbittel a kib vített G 24 Golay-kód. 5. Következmény. A bináris G 23 Golay-kódra: d min = 7 Ebb l látható, hogy a bináris G 23 Golay-kód szintén 3-hibajavító kód az 1.1. képletbe helyettesítve. 22. Tétel. A G 23 3-hibajavító bináris kód perfekt. Bizonyítás. A GF(2) test feletti (23, 2 12, 7) 2 3-hibajavító kódra a Hamming-korlát a következ : 3 ( ) n 2 12 2 23 i i=0 Az egyenl tlenség bal oldalát kiírva láthatjuk, hogy az egynl séggel teljesül, vagyis a kód eléri a Hamming-korlátot, így perfekt. ( ) ( )) 23 23 2 (1 12 + 23 + + = 2 23 2 3 33

23. Tétel. A kib vített G 24 Golay-kód egyértelm. 8. Megjegyzés. Az egyértelm ség úgy értend, hogy bármely (24, 2 12, 8) 2 paraméter bináris, lineáris kód permutáció-ekvivalens a kib vített G 24 Golay-kóddal. Bizonyítás. A fejezetben eddig leírtakat gyelembe véve már csak azt kell megmutatnunk, hogy a G 24 G generátor-mátrixában szerepl A mátrixból képzett A {0, 1} 11 11 mátrix, melyet az els sor és az els oszlop elhagyásával kapunk, permutáció erejéig egyértelm. A = 1 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 Az 5. állításban már láttuk, hogy d min = 8, emiatt A minden sorában legalább 6 darab 1-es áll. Ellenben 6-nál több nem lehet, mert a súlyok 4 többszörösei, így ebben az esetben 10 darab 1-nek kell állnia, és egy ilyen sort az els höz adva 4 súlyú kódszót kapnánk. A fejezet elején leírt konstrukcióban már láttuk, hogy A bármely két sorában "közös egyeseinek" száma 3, vagyis: supp(a i ) supp(a j ) = 3, azaz A sorainak mindegyike egy 11 elem halmaz 6 elem részhalmaza, és bármely kett metszete 3 elem. Ezzel beláttuk, hogy A egy 2 (11, 6, 3) blokkrendszer illeszkedési mátrixa, mely a 6.1. következmény alapján a 2 (11, 5, 2) blokkrendszer komplementere, így létezik, és permutáció erejéig egyértelm. 6.2.1. G 24 el állítása az ikozaéder adjacenciamátrixa segítségével Jelölje N {0, 1} 12 12 mátrix az ikozaéder csúcsaiból és éleib l alkotott gráf (6.1. ábra) adjacenciamátrixát, továbbá tekintsük az E {1} 12 12, illetve I 12 {0, 1} 12 12 mátrixokat. Állítsuk el a kib vített G 24 Golay-kód generátor-mátrixát ezen mátrixok segítségével. 24. Tétel. A kib vített G 24 Golay-kód G {0, 1} 12 24 generátor-mátrixa felírható a következ alakban: G = ( I 12 E N ) 34