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