Definíció. Hamming-kód Az -hibajavító, perfekt lineáris kódot Hamming-kódnak nevezzük. F fölötti vektorokkal foglalkozunk. Hamming-kód készítése: r egész szám (ellenırzı jegyek száma) n r a kódszavak hossza k r r a közleményszavak hossza A H (r n)-es mátrix j-edik oszlopában a j -es számrendszerbeli alakjának jegyei szerepelnek. * 4. Példa: r3 n7 k4 a [7,4] kód ellenırzı mátrixa: H 7. május 3. Hibajavító kódok 3.
7. május 3. Hibajavító kódok 3. 9. tétel: Az elıbbi szabállyal megadott kód Hamming-kód. Bizonyítás: A fenti * szabállyal megadott H mátrixban van három összefüggı oszlop, de bármely kettı lineárisan független. Így a kód minimális távolsága d3. hiba javító a kód. A Hamming-korlát teljesülése Mivel -hibajavító A kódszavak hossza nk+r: Ezt behelyettesítve a Hamming-korlátba: n n n K + r k r --r ( ) n r r r r r r K + + r r K
Beláttuk, hogy perfekt a kód: a kódszavak körüli sugarú gömbökben minden lehetséges r jegyő szó pontosan egyszer fordul elı. A * szabállyal Hamming kódot adtunk meg. 7. május 3. Hibajavító kódok 3. 3
Példa. Adjuk meg a 4. példabeli [7, 4] Hamming-kód H ellenırzı mátrixának ismeretében a kód (egyik) generátormátrixát. Megfelelı S permutációs mátrixszal a kódunk H ellenırzımátrixa HS(I n k, P) alakra hozható. P P (mod ). A G(P T, I k ) S T mátrix a H-nak megfelelı generátormátrix: T P H G H S I H k P k P P, + I ( I P ) n H k az oszlopok (3,4) transzpozíciójával 7. május 3. Hibajavító kódok 3. 4
7. május 3. Hibajavító kódok 3. 5 A H -nek megfelelı G mátrix (P T, I k ) alakú: Ebbıl a transzpozíciót újra alkalmazva megkapjuk a keresett G mátrixot. G G H
7. május 3. Hibajavító kódok 3. 6 Ha ezt a generátormátrixot alkalmazzuk a kódolásnál, mi lesz a ( ) üzenet kódja? A ( ) vektort jobbról szorozzuk G-vel. Az eredmény: ( ) G
Hibajavítás Hamming-kóddal: H A [7,4] Hamming-kód esetén b T () kódszó. H b( ) T. Tegyük fel, hogy az átvitel során egy hiba történt, mégpedig a 3. helyen. Az e T ( ) a hibavektor, a (b+e) T () vektor érkezik meg a csatornán. H (b+e) () T Ez a vektor a H mátrix 3. oszlopa, alulról olvasva éppen a 3 bináris alakja, rámutat arra, hogy a 3. pozícióban van a hiba. 7. május 3. Hibajavító kódok 3. 7
H Tegyük fel, hogy az átvitel során egy hiba történt, mégpedig a 7. helyen. e() a hibavektor, H (b+e)h ( ) T ( ) T Ez a 7 bináris értéke, ami azt mutatja, hogy a 7. jegy hibás. Ezzel a módszerrel mindig megkapjuk a hiba helyét, feltéve, hogy legfeljebb hiba történt. 7. május 3. Hibajavító kódok 3. 8
Egynél több hiba esetén a kód nem mőködik helyesen. Idınként nem ismeri fel a hibát, vagy rosszul javítja. Ha olyan hiba lép fel, mely maga is kódszó, akkor H (b+e) olyan mintha nem történt volna hiba. Ha a hiba két -est tartalmaz (kéthiba), akkor a kód egyhibának tekinti. 7. május 3. Hibajavító kódok 3. 9
6. példa. H [7,4] Hamming-kódnál feltételezve, hogy egynél több hiba nem lépett fel az átvitelnél, mi volt a továbbított kódvektor, ha. a T ( ). b T ( ) érkezett.. H a( ) T. A 6. hely hibás, ( ) T volt a küldött szó.. H b ( ) T. A kapott szó hibátlan. 7. május 3. Hibajavító kódok 3.
BCH-kód A Hamming-kód a kódelmélet hajnalán, az 94-es évek végére született meg. Több mint évvel késıbb történt a hasonló hatékonyságú -hibajavító kódok kifejlesztése. BCH-kódok: R. C. Bose, D. K. Chaudhuri és A. Hocquenghem. A véges testek nagy szerepe. A kételemő test (F T) feletti [n,k] kódokkal foglalkozunk. k a kód dimenziója, n a hossza, r n k az ellenırzı jegyek száma t-hibajavító kódot keresünk. Legyen n k+r rögzített, minél kisebb r értékkel minél nagyobb k értéket igyekszünk biztosítani. Más szavakkal T n -ben keresünk minél nagyobb K alteret, amelynek elemei (a kódszavak) legalább t + távolságra vannak egymástól. 7. május 3. Hibajavító kódok 3.
Megfelelı mérető H ellenırzı mátrixot készítünk. H-nak minél kevesebb sora legyen. Elıször olyan Q (mxn-es) mátrixot készítünk, amelynek bármely t oszlopa lineárisan független és lehetıleg kevés sora van. Másként: Q bármely legfeljebb t oszlopának összege legyen különbözı egymástól és ne legyen nulla vektor. Ez a Q egy t-hibajavító kódot definiál, így Q a kód kváziparitásellenırzı mátrixa. Ha Q sorai nem függetlenek, bizonyos sorokat amelyek függnek a többitıl - elhagyhatunk, hogy a maradék sorok függetlenek legyenek. (Ez nem változtat a mátrix hibajavítással kapcsolatos tulajdonságain.) 7. május 3. Hibajavító kódok 3.
-hibajavító BCH-kód. t. Legyen q 3 és n q. Hamming-korlátból adódik, hogy r q. A -hibajavító BCH kódnál r q. (Belátható, hogy r q teljesül.) Azonos n mellett a Hamming-kódhoz képest a -hibajavító BCH kódnál kétszer annyi ellenırzı jegyre van szükség. Q kvázi-paritásellenırzı mátrix definiálása: Q legyen (q x n) mérető. Elsı q sora legyen ugyanaz, mint a Hamming-kódnál, vagyis az oszlopok éppen T q nemnulla elemei. Most tekintsük T q -t q elemő testként. Ennek a testnek, és a T q vektortérnek az additív szerkezete megegyezik, ezért a testet is jelölhetjük T q -val. Legyen a (T q *, ) egyik generátoreleme. (T q *T q -{}). T q * elemei tehát i ( i q ). Q felsı felében ezek az elemek állnak. A Q alsó felében levı oszlopok a Q felsı felében levı elemek köbei. 7. május 3. Hibajavító kódok 3. 3
Q 3 6...... j 3 j Megmutatható, hogy a Q mátrix bármely legfeljebb oszlopának összege más és más nemnulla vektor, így Q -hibajavító BCHkód kvázi-paritásellenırzı mátrixa. Q rangja éppen q, s így Q a kód paritásellenırzı mátrixa. Definíció. t esetén legyen q 3, n q -, k q -q-. T q -t q -elemő testnek tekintjük. a (T q *, ) generátoreleme. T q * elemei i ( i q -). Legyen Q a fenti mátrix. Belátható, hogy ez a Q mátrix egy -hibajavító lineáris kódot definiál. Ezt a kódot -hibajavító BCH-kódnak nevezzük....... 7. május 3. Hibajavító kódok 3. 4
7. május 3. Hibajavító kódok 3. 5 7. példa. -hibajavító BCH-kód készítése. Legyen q4. A 4 6 elemő testben keressük a nemnulla elemek multiplikatív csoportjának egyik generáló elemét. Az fx 4 +x+ polinom gyökei megfelelnek. Legyen az f gyöke. A T 4 vektortér egy bázisa,,, 3, ezek lesznek most az egységvektorok. A többi hatvány koordinátáit a minimálpolinomból adódó 4 + ismételt alkalmazásával kaphatjuk meg. Az alábbi (8x5)-ös paritásellenırzı mátrixhoz jutunk.........................
t-hibajavító BCH-kód. Legyen most n q, r tq. A kód Q kvázi-paritásellenırzı mátrixa t darab q x n mérető blokkból áll. A felsı blokk oszlopai T q nemnulla elemei. Az i-edik blokk oszlopai a felsı blokkbeli vektoroknak (mint a T q test elemeinek) i -edik hatványai, i, 3,..., t (harmadik, ötödik, hetedik, stb. hatványok). Ha Q sorai összefüggık, akkor kiválasztunk közülük egy maximális független rendszert, ezek alkotják kódunk H paritásellenırzı mátrixát. 7. május 3. Hibajavító kódok 3. 6
7. május 3. Hibajavító kódok 3. 7 Definíció. Legyen q rögzített pozitív egész, amelyre q ->qt, n q -. T q -t q -elemő testnek tekintjük. a (T q *, ) generátoreleme. Legyen Q az a (tq x n) mérető mátrix, amelynek a j+-edik oszlopában egymás alatt rendre az alábbi t darab T q -beli vektor áll: j, 3j, 5j,..., (t-)j. Belátható, hogy a Q (tq x n) mérető mátrix soraiból kiválasztva egy maximális összefüggı rendszert, a kapott H paritásellenırzı mátrix t-hibajavító lineáris kódot határoz meg. Az ellenırzı jegyek száma r tq. Ezt a kódot t-hibajavító BCH-kódnak nevezzük. L L O M O M M M L L L L L L j t t t j j j Q ) ( 4 5 5 3 6 3
Polinomkódok. Legyen TF, és T m [x] a T feletti legfeljebb m -edfokú polinomok vektortere a szokásos mőveletekkel. Ekkor az... m a + x +... + m x m megfeleltetés izomorfizmus T m és T m [x] között. Azonosítsuk a T k és T n vektortereket a belılük a fenti izomorfizmussal létesített T k [x], illetve T n [x] vektorterekkel. Definíció. Legyen g egy rögzített s-edfokú polinom T felett. Legyen az A: T k [x] T n [x] leképezés a g polinommal történı szorzás, azaz A minden legfeljebb k -edfokú f polinomhoz a gf polinomot rendeli hozzá: Afgf. Az így definiált lineáris kódot polinomkódnak, a g polinomot pedig a kód generáló polinomjának nevezzük. 7. május 3. Hibajavító kódok 3. 8
Ha deg g < s, akkor minden kódszó végén s deg g darab nulla áll, ami semmire sem használható. Csak a deg g s eset érdekes. Ekkor a kódszavak éppen g többszörösei (polinomszorosai). 7. május 3. Hibajavító kódok 3. 9
A Hamming-kód polinomkód. Paritásellenırzı mátrixnak tekinthetı az r sorból és n r oszlopból álló H(... n- ) mátrix. Legyen az u γ γ... γ n T n vektornak megfelelı polinom: U γ + γ x +... + γ n x n T n [ x ] Az u vektor pontosan akkor kódszó, ha Hu, azaz n γ j j j Az U polinomnak gyöke a, vagyis u pontosan akkor kódszó, ha az F feletti m minimálpolinom osztója U-nak. Emiatt a Hammingkód olyan polinomkód, amelynek a generáló polinomja g m 7. május 3. Hibajavító kódok 3.
A BCH-kódok is polinomkódok Tekintsük a -hibajavító BCH-kódot. Az elızıekhez hasonlóan adódik, hogy u pontosan akkor kódszó, ha m és m 3 is osztója az U polinomnak, s így a generálópolinomés 3 minimálpolinomjának a legkisebb közös többszöröse: [ ] m, 3 m Hasonlóan kapjuk tetszıleges t esetre vonatkozólag: g Jelöljük j F feletti minimálpolinomját m j -vel. A t-hibajavító BCH-kód olyan polinomkód, amelynek a generáló polinomja g t [ m m m ],,..., t A kódban az ellenırzıjegyek száma éppen a g t generáló polinom foka. Az stq pontosan akkor teljesül, ha 3... t- mindegyike q-adfokú F felett és semelyik kettınek sem ugyanaz a minimálpolinomja. 7. május 3. Hibajavító kódok 3.
Irodalomjegyzék G. Birkhoff-T. C. Bartee: A modern algebra a számítógéptudományban Mőszaki Könyvkiadó, 974 Demetrovics, Denev, Pavlov: A számítástudomány matematikai alapjai Tankönyvkiadó, Budapest, 985 Freud Róbert: Lineáris algebra ELTE Eötvös Kiadó, Budapest, 996 Gonda János: Bevezetı fejezetek a matematikába III. ELTE TTK, Bp. 998 Gyırfi László-Gyıri Sándor-Vajda István: Információ és kódelmélet Typotex Kiadó, Jablonszkij, Lupanov: Diszkrét matematika a számítástudományban Mőszaki Könyvkiadó, 98 Járai Antal: Bevezetés a matematikába Eötvös Kiadó, Budapest, 5 7. május 3. Hibajavító kódok 3.