Kódelmélet és kriptográa Wettl Ferenc 20-02-08 v002 Tartalomjegyzék Zajmentes csatorna, forráskód 2 Entrópia = információ = bizonytalanság 2 2 Feltételes entrópia 2 3 Egyértelm dekódolhatóság 3 4 Zajmentes kódolási tétel 3 2 Zajos csatorna, hibajavítás 3 2 Példák 3 22 Csatornamodellek 4 23 Blokk-kódok 5 24 Dekódolás, hibajavítás 5 25 Csatornakódolási tétel 5 26 Korlátok kód méretére 6 Jelölések GF(q), F q F q [x] F q [x] n d H wt S r,q H r,q EH r,q RS?? RM?? q elem véges test F q feletti polinomok gy r je n-nél kisebb fokú F q feletti polinomok Hamming-távolság Hamming-súly (a 0-szótól való távolság) r paraméter F q feletti szimplex kód r paraméter F q feletti Hamming-kód kiegészített Hamming-kód ReedSolomon-kód ReedMüller-kód 3 Lineáris kód 6 3 Alapfogalmak 6 32 Generátormátrix 7 33 Kódok ekvivalenciája 8 34 Ellen rz mátrix 8 35 Dekódolás, szindróma 0 36 Kód konstrukciója kódból 4 Hamming kód 4 A Hamming kód tulajdonságai 42 A szimplex kód tulajdonságai 2 43 B vített bináris Hamming-kód 2 44 Els rend bináris ReedMuller-kód 2 45 Hadamard dekódolás 3 5 Ciklikus kód 4 5 Alapfogalmak 4 52 Generátormátrixok 5 53 Fordított kód 6 54 Ciklikus kód duálisa 6 A Függelék: Véges testek 6
Zajmentes csatorna, forráskód Entrópia = információ mennyisége = bizonytalanság mértéke Legyen az X valószín ségi változó eloszlása {p, p 2,, p n }, ahol p i = p(x i ) := P(X = x i ) Az x i információtartalmát vagy bizonytalanságát megadó függvény n, ha p i csökken, és ez a bizonytalanság csak p i -t l függ, jelölje ezt I(p i ) Pl I() = 0, hisz az valószín ség kimenetel bizonytalansága 0, I(0) =, és legyen I( 2 ) =, azaz az /2 valószín - ség esemény bizonytalanságát válasszuk egységnek ( bit vagy Shannon) Legyen I(p) = log = log p p Egy valószín ségi változó entrópiáján bizonytalanságának várható értékét értjük Ezt H(X) vagy H(p, p 2,, p n ) jelöli, azaz H(X) = H(p, p 2,, p n ) = E(I(X)) = E( log(p(x)) n = p i log n = p i log p i () p i i= i= A bizonytalanság nagyságát méri az az információ, mely az eloszlatásához szükséges A bizonytalanság, és így az információ leggyakrabban használt mértékegysége a bit (= Shannon) A fenti képlet úgy értend, hogy 0 log 0 = 0 (miért?) A H(p, p) függvényre használatos a H(p) vagy a H 2 (p) jelölés is Ábrázoljuk a H(p) függvényt! feladat Konkrét példákon gondoljuk végig, hogy az alábbi tulajdonságok joggal elvárhatók egy bizonytalanságot kifejez függvényt l Az X valószín ségi változó bizonytalansága nem függ mástól, mint az X valószín ségeloszlásától, és nem függ a p i értékek sorrendjét l sem, azaz H szimmetrikus; 2 H(p, p 2,, p n ) 0, és pontosan akkor 0, ha valamely i-re p i = ; 3 H folytonos; 4 H(p, p 2,, p n, 0) = H(p, p 2,, p n ); 5 H(p, p 2,, p n ) H( n, n,, n ); 6 H( n, n,, n ) H( n+, n+,, n+ ); 7 H( mn, mn,, mn ) = H( m,, m ) + H( n,, n ); 8 Ha p = p + + p n, q = q + + q m és p + q =, akkor H(p,, p n, q,, q m ) = H(p, q) + ph(p /p,, p n /p) + qh(q /q,, q m /q) (additivitás) Belátható a következ tétel: 2 tétel Ha p i 0 (i =,, n), és n i= p i =, akkor a fenti 8 feltételt kielégít függvény alakja H(p, p 2,, p n ) = c n p i log p i, i= ahol c egy tetsz leges pozitív konstans 3 házi feladat Az entrópia tulajdonságai Mutassuk meg, hogy ha az X valószín ségi változó értékkészlete n elem, akkor 0 H(X) log n, és a bal oldalon egyenl ség akkor és csak akkor áll fenn, ha az X valváltozó valószín séggel konstans, míg a jobb oldalon akkor és csak akkor áll egyenl ség, ha X egyenletes eloszlású 2 H(X, Y ) H(X) + H(Y ), és egyenl ség akkor és csak akkor áll fenn, ha X és Y függetlenek 4 példa Adva van n érme, melyek közül lehet, hogy az egyik hamis, és akkor a súlya különbözik a többiét l (könnyebb vagy nehezebb) Van egy kétkarú mérlegünk, mellyel k mérést végzünk, hogy megtaláljuk a hamis érmét, és hogy megmondjuk azt is, hogy könnyebb vagy nehezebb a többinél, vagy hogy bizonyítsuk, nincs az érmék közt hamis A mérésekkel szerezhet információ felhasználásával adjunk n-re fels becslést (ld még a 46 példát) Megoldás 2n+ lehet ség van: az n érme valamelyike nehezebb a többinél, az n érme valamelyike könnyebb a többinél, vagy mind egyforma nehéz A feladat alapján minden esetet egyformán valószín nek kell tekintenünk, mivel semmi információnk az eloszlásra, azaz az entrópia log(2n + ) Az egy méréssel megszerezhet információ legföljebb log 3, hisz minden mérésnek 3 eredménye lehet, a mérleg balra billen, jobbra billen, egyensúlyban marad Így k, a mérések száma minimum log(2n + )/ log 3 Innen n (3 k )/2 Elemi okoskodással is megkapható ez az eredmény: minden mérésnek 3 eredménye lehet, így k méréssel 3 k különböz állapot különböztethet meg, így 2n + 3 k, ami ugyancsak a fenti eredményt adja 2 Feltételes entrópia Egy kommunikációs csatorna mindkét végén megjelenik egy valváltozó: a bemenetit jelölje X, a kimenetit Y Kett jük viszonyát fejezik ki a következ fogalmak Az X, ill Y értelmezési tartományát jelölje X, illetve Y Az (Y X = x) feltételes valószín ségi változó eloszlása P(Y = y X = x) = p(y x) = Az (Y X = x) entrópiája p(x, y) p(x), H(Y X = x) = y Y p(y x) log p(y x) y Y 2
A H(Y X) feltételes entrópia deníciója: H(Y X) = x X p(x)h(y X = x) = p(x) p(y x) log p(y x) x X y Y = p(x, y) log p(y x) x X y Y 5 házi feladat Mutassuk meg, hogy H(X, Y ) = H(X) + H(Y X) = H(Y ) + H(X Y ) 2 0 H(X Y ) H(X), és a bal oldalon egyenl ség csak akkor áll fenn, ha valószín séggel függvénye X az Y - nak, míg a jobb oldalon csak akkor áll egyenl ség, ha X és Y függetlenek Az X és Y valváltozók kölcsönös információján az mennyiséget értjük I(X, Y ) = H(X) + H(Y ) H(X, Y ) 6 házi feladat A kölcsönös információ tulajdonságai Mutassuk meg, hogy I(X, Y ) = p(x,y) x,y p(x, y) log p(x)p(y) 2 I(X, Y ) 0, 3 I(X, Y ) = H(X) H(X Y ) = H(Y ) H(Y X), azaz X bizonytalansága I(X, Y )-nal csökken, ha ismerjük Y -t, 4 I(X, Y ) H(X), I(X, Y ) H(Y ) 3 Egyértelm dekódolhatóság A következ kben a forrásábécé legyen a véges X, a kódábécé a véges Y halmaz A kódszavak az Y elemei, azaz az Y elemeib l álló véges hosszú sorozatok Egy f : X Y függvényt kódnak nevezünk, az X elemeit üzeneteknek Az f : X Y kód egyértelm en dekódolható, ha bármely két u v üzenet esetén f(u )f(u 2 ) f(u k ) f(v )f(v 2 ) f(v m ) Az f kód pre- x, ha egyik kódszó sem folytatása egy másiknak Egy pre- x kód egyértelm en dekódolható Az f(x) kódszó hosszát f(x) jelöli 7 tétel (McMillan) Minden egyértelm en dekódolható f : X Y kódra n s f(xi), i= ahol n = X és s = Y Bizonyítás Mivel ( n ) N s f(xi) = i= n i = n i N = NL = A l s l, l= s f(xi f(xi N ahol L = max i n f(x i ), és A l az összes olyan l-hosszú kódbet sorozatok száma, melyek N kódszó egymás után írásával keletkeztek Az összes ilyen sorozat különböz az egyértelm dekódolhatóság miatt, ezért A l s l Így azaz ( n ) N s f(xi) NL, i= n s f(xi) N NL, i= ami bizonyítja az állítást 8 tétel (Kraft) Ha az l, l 2,, l n pozitív egészekre n s li, i= akkor létezik olyan f prex kód, hogy f(x i ) = l i, ahol i =,, n 4 Zajmentes kódolási tétel 9 tétel (Zajmentes kódolási tétel) Legyen X diszkrét valószín ségi változó Ekkor létezik olyan E : X {0, } és D : {0, } X függvény, hogy minden x X elemre D(E(x)) = x, továbbá E ( E(x) ) [H(X), H(X) + ] x X 2 Zajos csatorna, hibajavítás 2 Példák F n 2 2 példa (Alappéldák) Az alábbi öt példára többször fogunk hivatkozni (a) Ismétl kód a X aa a X n Legföljebb n hibát jelez, és n 2 hibát javít (hogyan?) (b) Paritásellen rz kód, nullösszeg kód (b,, b n ) F n 2 (b,, b n, b + + b n ) A kód utolsó bitjét szokás paritásbitnek nevezni Hibát javítani e kód nem tud, de egy hibát jelez (valójában páratlan sokat) Általánosítása a nullösszeg kódolás: (a,, a n ) F n q (a,, a n, n i= a i) F n q E kódolásoknál pontosan azok a kódszavak, melyek koordinátáinak összege 0 3
(c) Bináris [7, 4, 3] 2 Hamming-kód F 4 2 F 7 2 : (b 3, b 5, b 6, b 7 ) (b,, b 7 ), ahol b = b 3 +b 5 +b 7, b 2 = b 3 + b 6 + b 7, b 4 = b 5 + b 6 + b 7 A biteket Venndiagramban ábrázolhatjuk Legyen B, B 2, B 4 három halmaz B 2 k pontosan akkor tartalmazza a b i bitet, ha i bináris alakjában a k-adik bit (ld a 2 ábrát) Innen U b 0 b 4 b 5 b 6 b 7 B 4 b 4 B 4 b b 3 b 2 b 5 b 6 b 7 B B 2 b b 3 b 2 2 ábra Kiegészített Hamming-kód konstrukciója B B 2 ábra Hamming-kód konstrukciója könnyen látható, hogy egy (b,, b 7 ) bitsorozat pontosan akkor kódszó, ha a B j (j =, 2, 4) halmazok mindegyikében páros sok bit egyes Ami még érdekesebb, az is igaz, hogy bármely F 7 2-beli vektor vagy kódszó, vagy egyértelm - en kódszóvá változtatható egyetlen bit megváltoztatásával, azaz e kód képes egy bithibát javítani Pl ha a B 2 halmazban páratlan sok bit egyes, akkor a B B 2 B 4 = b 2 bitet kell megváltoztatni, ha a B 2 és a B 4 halmazokban is páratlan sok bit egyes, akkor a B B 2 B 4 = b 6 bitet Ebb l az is adódik, hogy bármely két kódszó Hamming-távolsága legalább 3, így e kód képes legföljebb 2 hiba jelzésére is! Innen kitalálható, hogy mit jelentenek a számok a [7, 4, 3] jelölésben Állítsuk el e kód összes kódszavát! (d) Kiegészített bináris [8, 4, 4] 2 Hamming-kód F 4 2 F 8 2 : (b 3, b 5, b 6, b 7 ) (b 0,, b 7 ), ahol a Hammingkódbeli b, b 2, b 4 bitek mellett még egy b 0 paritásellen rz bitet is csatolunk, azaz b 0 = i b i = b 3 + b 5 + b 6 A kiegészített Hamming-kód is ábrázolható Venn-diagrammal: az U univerzumben van még egy bit, b 0, amely a B j halmazokon kívül van, és egy vektor pontosan akkor kódszó, ha U, B, B 2 és B 4 mindegyikében páros sok bit egyes Igazoljuk, hogy itt bármely két kódszó Hamming-távolsága legalább 4, így e kód képes legföljebb 3 hiba jelzésére! Vagy képes egy hibát javítani és két hibát jelezni (e) Ternér H 2,3 Hamming-kód F 2 3 F 4 3 : (a, b) (a, b, a + b, a + 2b) Írjuk fel a kód összes kódszavát, és adjunk meg egy hibát kijavító eljárást! Igazoljuk, hogy bármely két kódszó Hamming-távolsága legalább 3 22 feladat A magyar személyi szám -jegy szám Els jegye s a tulajdonos nemét adja meg Ezután következik a születési dátuma (s 2 s 7 ), majd az egy napon születettek megkülönböztetését szolgáló véletlenszer en generált 3- jegy szám (s 8 s 9 s 0 ), végül egy ellen rz szám (s ) Ennek képzési szabálya: 0 s = is i mod i= Az s 8 s 9 s 0 kódot úgy választják ki, hogy s ne lehessen 0, így az is egyjegy Mutassuk meg, hogy e kód jelzi, ha a személyi számban egy jegy hibás (-hibajelz ), és jelzi két szomszédos szám fölcserélését is (Hasonló volt az ISBN régi 0-jegy kódja is, ahol a 0-es maradékot X-szel, a római tízessel jelölték) 23 feladat 7 halálraítélt körben ül, mindegyikük fején egy véletlenül kiválasztott piros vagy fekete sapka Mindenki látja a többiek sapkáját, de senki se látja a sajátját Semmi módon nem kommunikálhatnak egymással Egy id után egyszerre mindegyiküknek tippelnie kell a saját sapkája színére Három válasz lehetséges: nem tudom, fekete, piros Ha senki nem találja el, vagy csak egy is akad, aki téved, mind meghalnak, egyébként mind megmenekülnek Tudunk-e számukra olyan eljárást javasolni, ami /2-nél nagyobb valószín séggel megmenekíti ket Mi a legnagyobb valószín ség, amit el tudunk érni? 22 Csatornamodellek Diszkrét memóriamentes csatorna (DMC: discrete memoriless channel) bináris szimmetrikus csatorna (BSC: binary symmetric channel) 0 p p p p 0 0 p p p p? 0 4
2 bináris törléses csatorna (binary erasure channel) 3 z-csatorna 0 p p 23 Blokk-kódok 0 24 deníció Legyen Y egy véges halmaz, n egy pozitív egész A C Y n halmazt Y fölötti (n, M)-kódnak, vagy blokk-kódnak nevezzük, ahol M = C Egy kölcsönösen egyértelm X C leképezést kódolásnak nevezünk Elnevezések: Y a kódábécé, q = Y a kódábécé mérete, n a kódhossz, M = C a kódméret, k = log Y M = log q M a dimenzió vagy az üzenet hossza, R = k/n a kódsebesség (information rate, coding rate), r = n k a redundancia Ha a k üzenethossz egész szám, a C kódra az (n, M) jelölés helyett az (n, k) jelölés is használatos, illetve a kódábécé méretét is megadva (n, k) q Y gyakran a q-elem véges test, azaz Y = F q = GF(q) 25 deníció Legyen x, y Y n két kódszó Hammingtávolságuk d(x, y) = {i : x i y i, i n} Könnyen igazolható, hogy d H valóban távolság, azaz metrika: () d H (x, y) 0, (2) d H (x, y) = 0 x = y, (3) d H (x, y) = d H (y, x) (szimmetria), (4) d H (x, y) + d H (y, z) d H (x, z) (háromszög-egyenl tlenség) Például d H (0220, 0202) = 2 26 deníció (Kódtávolság, minimális távolság) d = min x,y C d H (x, y) A d kódtávolságú (n, M)-, illetve (n, k)-kódot (n, M, d)-kódnak, illetve (n, k, d)-kódnak is mondjuk Ha egy kód e hibát tud jelezni, akkor d = e + Ha egy kód t hibát tud javítani, akkor d = 2t + vagy d = 2t + 2 Fordítva, a d kódtávolságú kód t = d 2 hibát tud javítani és e = d hibát jelezni 27 példa (Kódok paraméterei) Ismétl kód: k =, R = /n, d = n Paritáskód, nullösszeg kód: k = n, R = /n, d = 2 Bináris [7, 4, 3] Hamming-kód: k = 4, R = 4/7, d = 3 Bináris kiegészített [8, 4, 4] Hamming-kód: k = 4, R = /2, d = 4 Ternér [4, 2, 3] Hamming-kód: k = 2, R = /2, d = 3 24 Dekódolás, hibajavítás A dekódolásnak kiemeljük azt a részét, amelyben a zajos csatornán átjutott c kódszó megváltozik, helyette egy x szót kapunk, melyb l megpróbáljuk c-t kitalálni A maximum likelihood vagy ML-döntés az, amikor x- hez úgy választunk c-t, hogy a maximális legyen P(kimenet = x bemenet = c) 28 állítás (ML dekódolás BSC-re) Mivel { n ( ) d(x,c) p, ha x i = c i, p P(x c) = p, ha x i c i = ( p)n p i= ami annál nagyobb, minél kisebb d(x, c), tehát az x-hez legközelebbi kódszó keresend A MAP-dekódolás vagy MAP-döntés (maximum a posteriori a posteriori = a tapasztalatból származó, a priori = a tapasztalatot megel z tudás) az, amikor x-hez úgy választunk c-t, hogy a P(bemenet = c kimenet = x) maximális legyen Ekkor legkisebb a hiba valószín sége Ha minden kódszó egyformán valószín, akkor így ugyanazt kapjuk, mint ML-döntés esetén, mert P(c x) = P(x c)p(c) P(x) 25 Csatornakódolási tétel Egy DMC kapacitása C = sup I(X, Y ) X Ez az X bizonytalanságának maximális csökkenése, amit Y ismerete okoz, ha az X összes lehetséges valószín ségeloszlásaira nézzük C csak a csatornastatisztikától függ, amelynek mátrixa P = [p ij ], ahol p ij = P(y j x i ) Ez sorsztochasztikus mátrix, mert m p ij = j= 29 példa (Zajtalan bináris DMC kapacitása) Zajtalan bináris DMC esetén a lehetséges két bemenet (0 és ) változás nélkül jelenik meg a kimeneten, így a csatornastatisztika P = [ 0 0 ] Határozzuk meg kapacitását! Megoldás A feltételek szerint P(0 0) = P( ) = Ha P(X = 0) = p, P(X = ) = p, akkor H(X Y = 0) = P(0 0) log P(0 0) P( 0) log P( 0) = 0, hasonlóképp 5
H(X Y = ) = 0, tehát H(X Y ) = 0, vagyis I(X, Y ) = H(X) H(X Y ) = H(X) = H(p) Így C = sup H(p) = H( p [0,] 2 ) = Azaz a zajtalan bináris DMC csatorna kapacitása C = 20 feladat Mutassuk meg, hogy p valószín ség bináris szimmetrikus csatorna (BSC) kapacitása H(p) (Útmutatás: a csatornastatisztika p p [ p p ]) 2 feladat Tekintsük azt a diszkrét memóriamentes csatornát, melynek csatornastatisztikája az m m-es p p p m m p p m p m p m p m p mátrix Mutassuk meg, hogy kapacitása C = log m + p log p + ( p) log p m 22 tétel (Shannon csatornakódolási tétele) Az elérhet R kódsebességek szuprémuma egy diszkrét memóriamentes csatornán egyenl a csatornakapacitással, tehát bármely, a csatornakapacitásnál kisebb kódsebesség tetsz legesen nagy biztonság mellett megvalósítható, míg a csatornakapacitásnál nagyobb kódsebesség nem 23 tétel (Shannon csatornakódolási tétele BSC p -re) Minden 0 p < 2 és 0 < ε < 2 p számhoz van olyan δ > 0 szám és egy olyan kód, melynek kódsebessége k n = H(p + ε), kódoló és dekódoló függvényei E : {0, } k {0, } n és D : {0, } n {0, } k, hogy minden m {0, } k üzenetre P(D(E(m) + zaj) m) 2 δn, ahol zaj a BSC p -b l származó zaj 26 Korlátok kód méretére 24 tétel (Singleton-korlát) Ha C egy (n, k, d)-kód, akkor M q n d+ Ha M = q k, akkor a korlát alakja d n k + Bizonyítás Ha d a kódtávolság, akkor nincs két kódszó, mely az els n d + jelen megegyezne, így a szavak száma legföljebb q n d+ Ha M = q k, akkor k n d +, azaz d n k + Azokat a kódokat, amelyekre a Singleton-korlátban egyenl ség áll MDS-kódoknak nevezzük (maximum distance separable) A ternér [4, 2, 3] Hamming-kód MDS-kód Lásd még a Reed-Solomon-kódokat 25 tétel (Hamming-korlát) A d távolságú C Y n ( Y = q) kódra C és t = d 2 qn V q (t, n), ahol V q(j, n) = j i=0 ( ) n (q ) i, i Bizonyítás Ha d a kódtávolság, akkor két t = d 2 -sugarú gömb nem metszheti egymást Egy ilyen gömb térfogata azaz kódszavainak száma V q (t, n), és az egymást nem metsz gömbök számának maximuma a kódszavak számára is fels becslést ad Azokat a kódokat, amelyekben itt egyenl ség áll perfekt kódoknak nevezzük A bináris [7, 4, 3] Hamming-kód perfekt kód Minden F q feletti perfekt kód (n, k, d) paraméterhármasa megegyezik az alábbiak valamelyikével: ) ( q r q, qn r, 3 ezek az -hibajavító kódok, közéjük tartoznak a Hammingkódok, valamint, q (23, 2, 7) 2 és (, 6, 5) 3, ez utóbbiak neve bináris, illetve ternér Golay-kód A ternért valójában Golay el tt 2 évvel, 947-ben Virtakallio publikálta a Veikaaja cím fociújságban 3 Lineáris kód 3 Alapfogalmak 3 deníció Az F q test fölött értelmezett C F n q kódot lineáris (n, k)-kódnak nevezzük, ha C az F n q vektortér egy k-dimenziós altere A lineáris kódra (n, k) q helyett az [n, k] q, illetve az [n, k, d] q jelölés is használatos Az X C kódolásban általában X = F k q A denícióból következ en a zérus kódszó minden lineáris kódnak eleme, és kódszavak minden lineáris kombinációja is kódszó A 2 példa kódjainak mindegyike lineáris 32 feladat Mutassuk meg a 2 példa kódjairól, hogy az ismétl kód [n,, n]-kód, a paritásellen rz kód [n, n, 2] 2 - kód, a nullösszeg kód [n, n, 2] q -kód, a bináris Hammingkód [7, 4, 3] 2 -kód, a bináris kiegészített Hamming-kód [8, 4, 4] 2 -kód, a ternér Hamming-kód [4, 2, 3] 3 -kód Egy c C kódszó Hamming súlyán (weight) a nemnulla komponenseinek wt(c) számát értjük, azaz wt(c) = {i : c i 0, i =,, n} A C kód minimális súlya a legkisebb Hamming súlyú nemnulla kódszó w súlya, azaz w = min c C,c 0 wt(c) 6
33 tétel Egy lineáris C kód kódtávolsága megegyezik minimális súlyával, azaz d = w Bizonyítás Mivel C lineáris, ezért kódszavainak bármely lineáris kombinációja is kódszó, így, ha x, y C, akkor x y C A távolság kiszámítása így a 0-tól való távolság számításává változtatható: d = min d H(x, y) = min d H(x y, y y) x,y C, x y x,y C, x y = min wt(c) = w c C, c 0 34 tétel (súlyeloszlás = távolságeloszlás) Bármely lineáris kódban a szavak súlyeloszlása megegyezik a távolságok eloszlásával Bizonyítás Legyen a C kódban a w súlyú kódszavak száma A w Ha c C egy tetsz leges kódszó, akkor az M 2 számú rendezett (c, c ) kódszó-pár között pontosan M olyan van, ahol c c = c Így a w távolságú szópárok száma MA w 32 Generátormátrix Az, hogy C lineáris altér, egy egyszer F k q F n q kódolási eljárást tesz lehet vé Legyen g, g 2,, g k a C egy bázisa Egy tetsz leges x F k q vektor (üzenet) c C kódja legyen c = x g + x 2 g 2 + + x k g k Ez egy egyszer mátrixszorzással is el állítható: c = xg, ahol a k n-es G mátrix az úgynevezett generátormátrix sorvektorai C bázisának elemei (A kódelméletben a kódszavakat inkább sorvektorokkal szokás reprezentálni) 35 példa Írjuk fel a 2 példa kódjainak generátormátrixait! (a) Ismétl kód Természetesen feltesszük, hogy Y = F q Ekkor C az (,,, ) kódszó által generál egydimenziós altér F n q -ben Így G = [ ] (b) Paritásellen rz kód, nullösszeg kód Az (a,, a n ) F n q leképezés mátrixa (a,, a n, n i= a i) F n q 0 0 0 0 G = 0 0 (c) Bináris [7, 4, 3] 2 Hamming-kód Az F 4 2 F 7 2 : (b 3, b 5, b 6, b 7 ) (b,, b 7 ), ahol b = b 3 + b 5 + b 7, b 2 = b 3 + b 6 + b 7, b 4 = b 5 + b 6 + b 7 leképezés mátrixa 0 0 0 0 G = 0 0 0 0 0 0 0 0 (2) 0 0 0 Például az x = (0,,, 0) üzenet kódja 0 0 0 0 c = xg = [ 0 0 ] 0 0 0 0 0 0 0 0 0 0 0 = [ 0 0 0 ] (d) Kiegészített bináris [8, 4, 4] 2 Hamming-kód Az el z generátormátrixot itt csak egy nulladik oszloppal kell kiegészíteni a b 0 = b 3 + b 5 + b 6 összefüggésnek megfelel en: 0 0 0 0 G = 0 0 0 0 0 0 0 0 0 0 0 0 (e) Ternér [4, 2, 3] 3 Hamming-kód A F 2 3 F 4 3 : (a, b) (a, b, a + b, 2a + b) leképezés mátrixa [ ] 0 2 G = 0 Világos, hogy a generátormátrix nem egyértelm, hisz a kódban maga a C altér fontos, az F k q -nak erre való bijektív leképezése nem Az altérnek több bázisa van, és egy bázis is többféleképp sorolható fel Tudjuk, hogy G elemi sorm - veletekkel redukált lépcs s alakra hozható, ami egyértelm, és hogy ennek sorvektorai ugyanazt a teret generálják, mint az eredeti mátrix A vezet egyesek oszlopait kiemelve egy egységmátrixot kapunk, így ezeken a helyeken megjelenik az üzenetvektor Azt mondjuk, hogy az F k q C kódolás szisztematikus az i,, i k helyeken, ha az üzenet k jegye megjelenik a kódszó i -edik,, i k -adik helyein Például a 2 példában megadott Hamming-kódolás szisztematikus a 3-, 5-, 6-, 7- dik helyeken 36 feladat A C kódnak pontosan akkor van F k q C szisztematikus kódolása az i,, i k helyeken, ha a G mátrix i -edik,, i k -adik oszlopai lineárisan függetlenek Ekkor elemi sorm veletekkel G mindig átalakítható olyan G mátrixszá, mely ugyancsak C generátormátrixa, és a vele való kódolás szisztematikus az i,, i k helyeken Ha azt mondjuk, hogy egy kódolás szisztematikus, de nem adjuk meg hogy mely helyeken, akkor az azt jelenti, hogy az els k helyen Ilyenkor a generátormátrix alakja G = [ I k A k n k ] Ezt nevezzük a generátormátrix standard alakjának Ekkor bármely x üzenethez tartozó c = xg kódszó c = [x xa k n k ] alakú Azokat a koordinátákat, ahol a kódolás szisztematikus üzenetszegmensnek (information set), a maradék n k koordinátából álló részt ellen rz szegmensnek (vagy paritásszegmensnek) nevezzük, hisz ezek valóban az üzenetszegmens koordinátáinak bizonyos ellen rz lineáris kombinációi 7
33 Kódok ekvivalenciája Elemi sorm veletekkel nem mindig érhet el, hogy egy kódolás az els k helyen szisztematikus legyen, de a koordináták permutációjával igen Két lineáris kódot permutációekvivalensnek vagy egyszer en ekvivalensnek nevezünk, ha a koordinátáknak egy adott permutációja erejéig megegyeznek, azaz C pontosan akkor ekvivalens C -vel ha létezik egy P permutációmátrix, hogy c C cp C Ha G a C generátormátrixa, akkor G = GP a C -é Például a 2 példában megadott Hamming-kódolás és kiegészített Hamming-kódolás egy vele permutációekvivalens szisztematikus változatának generátormátrixa: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0, 0 0 0 0 0 0 0 0 A permutációk: (745263), illetve (84)(2763)(5), a permutációmátrixok: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 és 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A C és C kódok diagonálisan ekvivalensek, ha létezik egy olyan D diagonális mátrix, hogy c C cd C E két ekvivalencia egyesítése a monomiális ekvivalencia, ahol c C cm C, és M monomiális mátrix, azaz minden sorában és oszlopában egyetlen nemnulla elem áll Itt is fennáll a G = GD, illetve a G = GM összefüggés 34 Ellen rz mátrix 37 deníció A C kód duálisán a C = { v F n q : v c = 0 minden c C kódszóra } kódot értjük, mely egy lineáris kód A C kód H generátormátrixát a C kód ellen rz mátrixának nevezzük (Használatos még a paritásmátrix vagy a paritásellen rz mátrix elnevezés is, bár paritásról csak a q = 2 esetben van szó) Azonnal látszik, hogy az ismétl kód és a nullösszeg kód egymás duálisa, valamint hogy az ismétl kód generátormátrixa a nullösszeg kód ellen rz mátrixa és fordítva 38 tétel Ha C egy lineáris [n, k]-kód, akkor () C = { v F n q : vg T = 0 }, (2) C egy [n, n k]-kód, (3) C := (C ) = C, (4) C = { c F n q : ch T = 0 }, (5) GH T = O k n k, HG T = O n k k, (6) ha G = [I k A] a C kód standard alakú generátormátrixa, akkor ellen rz mátrixa H = [ A T I n k ] Bizonyítás () világos a duális kód deníciójából Másként fogalmazva a C kód megegyezik G T bal magterével Mivel a magtér dimenziójának és a mátrix rangjának összege megegyezik a sorok számával, ezért dim(c )+k = n, azaz dim(c ) = n k, ami bizonyítja (2)-t Ezt az érvelést megismételve C -re kapjuk, hogy C egy [n, k]-kód E kód tartalmazza C-t, és dimenziójuk megegyezik, így C = C, azaz fennáll (3) is Ezután () bizonyítja (4)-et Mivel minden x F k q vektorra xg C, azaz xght = 0, ezért GH T csak a zérusleképezés lehet, ami bizonyítja (5)-öt A (6)- ban megadott G és H mátrixokra a blokkmátrixok szorzási szabálya szerint GH T = O, így bármely c = xg kódszóra ch T = xgh T = xo = 0, tehát (4) szerint H valóban ellen- rz mátrix, feltéve, hogy sorai lineárisan függetlenek, ami meg nyilvánvaló 39 tétel (C kódtávolsága H oszlopai) Legyen H a C lineáris kód egy tetsz leges ellen rz mátrixa, és s > 0 egész A C kód kódtávolsága pontosan akkor nagyobb s-nél, ha H bármely s különböz oszlopa lineárisan független Következésképp a C kód d minimális távolsága megegyezik a H mátrix lineárisan összefügg oszlopai minimális számával Bizonyítás Megmutatjuk, hogy a H mátrix s különböz (i -edik, i s -edik) oszlopa pontosan akkor lineárisan összefügg, ha van olyan nem nulla c kódszó, melyben a nem nulla koordináták indexei az {i,, i s } halmazba esnek A c C kódszó súlya legyen s Mivel Hc T = 0 T, ezért H-nak van s oszlopa, melyek lineárisan összefügg k Fordítva, ha H-nak van s lineárisan összefügg oszlopa, akkor az ezek közti c i h i + + c is h is = 0 lineáris összefüggést mátrixalakba írva egy olyan nem nulla, és legfeljebb s súlyú c vektorhoz jutunk, melyre Hc T = 0 T, azaz amely benne van C-ben Tehát pontosan akkor van C-ben legfeljebb s súlyú kódszó, ha H-ban van s lineárisan összefügg oszlop Ez azt jelenti, hogy ha C kódtávolsága d, akkor H-nak minden d oszlopa lineárisan független, de van d lineárisan összefügg oszlopa Ezzel kihasználva, hogy H rangja n k a lineáris kódok esetére egy új bizonyítást adtunk a Singleton-korlátra 30 tétel (Singleton-korlát lineáris kódra) Tetsz leges C lineáris [n, k, d] kódra d n k + A 39 tétel átfogalmazható a H mátrix nélkül is a C kódra való hivatkozással 3 lemma A k-dimenziós C F n q altér generátormátrixának valamely t oszlopa pontosan akkor lineárisan független, ha e koordinátapozíciókon C-ben minden lehetséges 8
t-hosszú vektor ugyanannyiszor, nevezetesen q k t -szer fordul el Bizonyítás Nyilvánvaló, hisz ha az adott t oszlop lineárisan összefügg, akkor nem állhat el minden vektor e koordinátapozíciókon, ha pedig e t oszlop független, található C-nek olyan bázisa, mely e pozíciókban standard, így minden t-es épp q k t -szer áll el Egy C kód szilárdságán (strength) azt a legnagyobb t számot értjük, amelyre igaz, hogy bármely t pozíción minden t-es ugyanannyiszor fordul el Az ilyen kód szavaiból, mint sorvektorokból képzett mátrixot t-szilárdságú ortogonális tömbnek (orthogonal array) nevezzük Szokásos jelölése OA λ (t, n, q), ha minden t-es λ-szor fordul el 32 tétel (Dualitás elve) Bármely C lineáris kódra d(c) = t(c ) + Egy kódnak és duálisának szisztematikussága összefügg 33 tétel A C kódnak pontosan akkor van szisztematikus kódolása adott k helyen, ha a C kódnak van a maradék n k helyen Bizonyítás Feltehet, hogy C-nek az els k helyen van szisztematikus kódolása Legyen C ellen rz mátrixa H Meg kell mutatni, hogy H utolsó n k oszlopa lineárisan független Indirekt módon tegyük fel, hogy lineárisan összefügg k, azaz van olyan 0 y = (0,, 0, y k+,, y n ) vektor, hogy yh T = 0 Ekkor y C, ami ellentmondásra vezet, hisz C- nek van G = [I A] alakú generátormátrixa, így y = [x ] alakú, ahol x = 0, így y = xg = 0G = 0, ami ellentmond az y 0 kikötésnek Megmutattuk tehát, hogy ha C-nek van szisztematikus kódolása valamely k helyen, akkor C -nek van a többi n k helyen Ezt a duális kódra is alkalmazva kapjuk a tétel állítását 34 példa Írjuk fel a 35 példabeli generátormátrixokhoz tartozó ellen rz mátrixokat egy esetleges koordinátapermutáció után a 38 tételbeli H = [ A T I n k ] képlettel (a) Ismétl kód A generátormátrix [ ] alakú, így 0 0 0 0 H = 0 0 (b) Paritásellen rz kód, nullösszeg kód Itt H = [ ], ahol az utolsó -es egy -es egységmátrix (c) Bináris [7, 4, 3] 2 Hamming-kód A (2) generátormátrix a (34) permutációval [A I] alakot ölt, amelyhez az [I A T ] ellen rz mátrix tartozik Ezen a (34) permutáció inverze ami önmaga a következ mátrixot adja: 0 0 0 H = 0 0 0 (3) 0 0 0 (d) Kiegészített bináris [8, 4, 4] 2 Hamming-kód Az el z höz hasonlóan: 0 0 0 0 H = 0 0 0 0 0 0 0 0 0 0 0 0 (e) Ternér [4, 2, 3] 3 Hamming-kód = 2 és 2 = felhasználásával [ ] 2 2 0 H = 2 0 Egy C lineáris kód önortogonális, ha C C, és önduális, ha C = C 35 feladat A páros hosszú bináris ismétl kód és a [7, 4] Hamming-kód duálisa önortogonális, míg a kiegészített [8, 4] 2 és a [4, 2] 3 Hamming-kódok önduálisak is 36 feladat Mutassuk meg, hogy egy önduális bináris kód minden kódszava páros súlyú, egy önduális ternér kód minden kódszavának 3-mal osztható a súlya Mutassuk meg továbbá, hogy ha egy önduális bináris kódnak van olyan bázisa, amelyben minden kódszó súlya osztható 4-gyel, akkor minden kódszó súlya osztható 4-gyel 37 feladat A SET R nev játék 8 olyan kártyából áll, melyek rajzolatán négy különböz tulajdonság 3-3 változata különböztethet meg A négy tulajdonság: az ábra színe (piros, zöld, lila), a gurák száma (, 2, 3), alakja (káró, kör, pikk), és a színezés telítettsége (üres, csíkos, teli) A négy tulajdonságot egy vektor 4 koordinátájának gondolva, a kártyák mindegyikének megfelel F 4 3 egy eleme A játék célja kártyák egy halmazából minél több ún SET-et kiválasztani A SET három olyan kártya, melyek minden tulajdonság szerint vagy azonosak, vagy különböz k Például az alábbi öt kártya között két SET is található A kártyák alatt az F 4 3-be való kódolásukat is megadjuk: A B C D E piros piros zöld lila lila 3 2 káró kör kör pikk kör üres csíkos teli csíkos üres 0000 02 02 202 20 SET-et alkotnak az ACD és a BCE kártyahármasok Például az ACD kártyák különböz szín ek, azonos guraszámúak, különböz gurák vannak rajtuk, és különböz a telítettségük is Megmutatható, hogy ki lehet választani a 8-b l 20 kártyát úgy, hogy ne legyen köztük SET, de 2-et már nem Például az alábbi mátrix 20 oszlopa 20 ilyen kártya kódja: 0 0 0 0 0 0 0 0 0 2 2 M = 0 0 0 2 2 2 0 0 0 2 2 2 0 0 2 0 0 0 0 0 2 0 0 0 2 0 2 0 2 0 2 0 2 0 2 9
Konstruáljunk e táblázat felhasználásával egy [20, 5, 4] 3 kódot! Megoldás Három F 4 3-beli vektor pontosan akkor alkot SETet, ha összegük a nullvektor, ugyanis 0 + + 2 = 0, a + a + a = 0 (a = 0,, 2), és más számhármas összege nem 0 Az M mátrixnak tehát nincs három oszlopa, melynek összege 0 lenne Ez még nem jelenti, hogy bármely három oszlop független, de ha kiegészítjük M-et egy csupa--sorral, akkor semmilyen 3 oszlopvektor lineáris kombinációja nem lesz a 0-vektor, így az ezzel az 5 20-as mátrixszal, mint ellen rz mátrixszal képzett lineáris kód [20, 5, 4] 3 kód lesz 35 Dekódolás, szindróma Tegyük fel, hogy egy c C kódszó helyett egy v = c + e érkezik, ahol e az ún hibavektor Mivel ch T = 0, ezért vh T = (c + e)h T = ch T + eh T = eh T, vagyis vh T csak a hibavektortól függ, így e vektor jelzi a hibát, orvosi hasonlattal élve olyan, mint a szindróma, mely jelzi a betegséget Az s = vh T vektort szindrómának nevezzük A szindróma arra is lehet séget ad, hogy segítségével megbecsüljük a hibavektort, és így tippeljünk az üzenetre A ML becslésnél a minimális távolságú kódszóra tippelünk Ha több kódszó is azonos távolságra van, véletlenül választunk közülük A dekódolás módját egy táblázatba is foglalhatjuk, amit standard elrendezési táblázatnak nevezünk Ennek els sorába a C kódszavai vannak írva, és minden sorába C egy mellékosztálya, azaz valamely e vektorral való eltoltja Arra kell csak ügyelni, hogy minden sorban a legkisebb súlyú vektorok valamelyikét válasszuk e-nek Világos, hogy egy mellékosztályhoz egyetlen szindróma tartozik, hisz bármely két c, c 2 C kódszóra (c + e)h T = (c 2 + e)h T = eh T = s Így a táblázatnak q n k sora van, vagyis ennyi hibamintát tudunk javítani szindróma hiba s 0 = 0 e 0 = c 0 = 0 c c qk s e c + e c qk + e s q n k e q n k c + e q n k c qk + e q n k 38 példa (Táblázatos dekódolás) Tekintsük azt a kódot, melynek ellen rz mátrixa 0 0 0 0 0 0 0 Adjuk meg egy standard elrendezési táblázatát Hány ilyen különböz táblázat létezik, azaz hány különböz dekódolás? () Írjuk fel a táblázat els sorába C F n q kódszavait, els nek a 0-szót (2) Válasszunk ki az F n q megmaradt szavai közül a legkisebb súlyú e szót, és írjuk a hibaoszlopba Adjuk ezt hozzá mindegyik kódszóhoz, és a c + e összeget írjuk c oszlopába (3) Ismételjük meg az el z lépést, amíg F n q vektorai el nem fogynak (4) Írjuk minden sor fejlécébe a sorhoz tartozó szindrómát szindróma hiba 000 00000 0 00 00 00 0000 00 000 0 00 0000 00 0 000 00 0000 00 000 0 0000 00 0 000 0 0000 000 000 0 000 000 00 00 0 000 000 00 00 A táblázatban félkövéren szedtük azokat a vektorokat, melyeket egy adott lépésben hibavektornak választhatunk Így e kódnak 4 különböz ML-dekódolása lehetséges A standard elrendezési táblázat tulajdonságai tehát a következ k: A táblázat az F n q vektortér qn elemét tartalmazza, ezek q k oszlopba és q n k sorba vannak rendezve Minden sor fejlécébe az adott sorhoz tartozó szindróma kerül 2 A táblázat minden sora a C egy mellékosztálya, így az egy sorban lév két vektor különbsége mindig kódvektor Különböz sorok különböz mellékosztályok, amik így diszjunktak, de egy sorban sem lehet két azonos vektor, hisz c i + e l = c j + e l esetén c i = c j lenne, ami i j miatt nem lehetséges 3 Minden sorban az els elem a legkisebb lehetséges súlyú, így e sorba azok a vektorok kerültek, amelyeket ezzel a vektorral, mint hibavektorral javítunk A táblázattal való dekódoláshoz valójában elég a fenti hibaoszlopa és a szindrómák oszlopa, ezt nevezzük szindrómatáblázatnak Ekkor ugyanis egy tetsz leges v vektorra a táblázatból kikeressük az s = vh T szindrómához tartozó e hibavektort, és a c = v e kódszóra tippelünk Például a fenti kód szindrómatáblázata szindróma szerint rendezve: szindróma hiba 000 00000 00 0000 00 0000 0 000 00 0000 0 0000 0 000 0000 0
39 feladat Határozzuk meg a 2 példabeli [4, 2, 3] 3 paraméter Hamming-kód szindrómatáblázatát! Dekódoljuk a 22 és az 0 vektorokat! 36 Kód konstrukciója kódból 4 Hamming kód 4 A Hamming kód tulajdonságai 4 példa Keressünk olyan -hibajavító lineáris F q feletti kódot, melyre k a lehet legnagyobb, ha a javításra használható jegyek r = n k száma, azaz a redundancia rögzítve van! Mutassuk meg, hogy e kód perfekt! Megoldás E kód H ellen rz mátrixa r n-es, a H T mátrix i-edik sorvektorát jelölje h i Legfeljebb hiba esetén az e hibavektor Hamming-súlya legföljebb, így az s = eh T szindróma vagy a 0-vektor, vagy e i h i valamely i-re, ahol e i az e vektor egyetlen nem-0 koordinátája Mivel e kód minimális távolsága 3, ezért a 39 tétel szerint H-nak bármely és bármely 2 oszlopa lineárisan független (azaz nincs köztük a 0-vektor, és egyik sem konstansszorosa a másiknak) Rögzített r = n k mellett k maximális, ha n maximális, és n maximális értéke (q r )/(q ) Fogalmazhatunk úgy is, hogy e feltételeknek megfelel H mátrixot úgy kapunk, ha az F q feletti r -dimenziós projektív tér pontjainak koordinátás alakját írjuk H oszlopaiba Ha h i els nem-0 koordinátája mindig, akkor az s = e i h i szindróma els nem-0 koordinátája épp e i, vagyis a szindrómából az e hibavektor azonnal leolvasható E kód perfekt, mert n = (q r )/(q ), azaz +n(q ) = q n k, tehát a Hamming-korlátban egyenl ség áll 42 deníció Vegyünk egy olyan H mátrixot, melynek oszlopai között F r q minden nemnulla vektorának pontosan egy nem nulla konstansszorosa szerepel (Például ilyen az a mátrix, mely az összes olyan nemnulla oszlopvektorból áll, melynek utolsó nemnulla koordinátája ) Azt a kódot, melynek a H mátrix az ellen rz mátrixa, r paraméter F q feletti H r,q Hamming-kódnak, duálisát S r,q szimplex kódnak nevezzük (Rögzített r és q esetén minden H r,q kód monomiálisan ekvivalens, hasonlóképp a szimplex kódok) 43 tétel A H r,q Hamming-kód [ q r ] q, qr q r, 3 q paraméter perfekt kód, a H 2,q kód q > 2 esetén [n, n 2, 3] q paraméter MDS-kód Bizonyítás A Hamming-kód paraméterei a denícióból adódnak, d = 3, mert H-ban bármely két oszlop független, de van három összefügg A kód perfektségét beláttuk a 4 példában Az r = 2 esetben a Singleton-korlát szerint d n k + = 3, másrészt d = 3, így itt egyenl ség áll 44 példa Írjuk fel a H 2,3 és H 2,4 kódok ellen rz és generátormátrixát! Megoldás A q = 3 esetben (felhasználva, hogy = 2 és 2 = ) [ ] [ ] 0 0 2 2 H = G = 2 0 0 2 A q = 4 esetben legyenek a test elemei 0,, α, α +, ahol az F 2 fölött irreducibilis α 2 + α + polinommal végezzük a testb vítést H = [ ] 0 α α + 0 G = 0 0 0 0 α 0 0 α + 45 feladat Dekódoljuk a fogadott 222222 szót, ha a kód ellen rz mátrixa 0 2 0 2 0 2 0 2 0 0 0 0 2 2 2 0 0 0 0 46 példa Az 4 példában n érme közül k méréssel kerestünk egy hamisat Mi lenne a mérések sorozata az n = 2, k = 3 esetben? Megoldás Írjuk fel a számokat 2-t l 2-ig a 3-as számrendszerben a {, 0, } jegyeket használva Írjuk e számokat egy táblázatba: 2 3 4 5 6 7 8 9 0 2 Σ 3 0 0 0 0 0 0 3 0 0 0 0 2 3 2 0 0 0 0 8 E táblázat a H 3,3 ternér Hamming-kód ellen rz mátrixának els 2 oszlopa (egy jegycsere után) Sorösszegei nem nullák, de például a 8-, 9-, 0-, 2-dik oszlopok el jelét ellenkez jére változtatva ez is elérhet : 2 3 4 5 6 7 8 9 0 2 Σ 3 0 0 0 0 0 0 3 0 0 0 0 0 3 2 0 0 0 0 0 Ezután megsorszámozzuk az érméket, és az i-edik mérés során a j-edik érmét aszerint kezeljük, hogy mi áll a táblázat i-edik sorának j-edik oszlopában Ha ott áll, a jobb serpeny be, áll, a bal serpeny be, 0 áll, félre tesszük Ha nincs az érmék közt hamis, mindhárom mérés egyensúlyt mutat Ha pl az 5 érme nehezebb a többinél, az és 2 mérésnél balra, a harmadiknál jobbra billen a mérleg, azaz egy (,, ) vektort kapunk, ami épp a táblázat
5 oszlopa Ha a három eredmény: balraegyensúlyjobbra, azaz a mérés eredménye (, 0, ), akkor a 8 érme hamis, és könnyebb a többinél, mert a 8 oszlopban e vektor - szerese szerepel Az 4 példabeli n (3 k )/2 becslésb l k = 3 esetén n 3 jön ki Vajon 3 érméb l is ki tudjuk választani a hamisat? Igen, ha mindazt a lehet séget kihasználjuk, amit a bizonyítás nem zárt ki, például hogy egy érmét ketté vágjunk, vagy felhasználjunk egy további szabályos érmét Keressünk ilyen megoldást! Viszont nem a válasz, ha a fentihez hasonló megoldást keresünk 42 A szimplex kód tulajdonságai A szimplex kód elnevezés onnan származik, hogy mint a szimplex csúcsi a kódszavak egyenl távolságra vannak egymástól Ez a távolság q r A 34 tétel szerint ezzel ekvivalens, hogy bármely nem nulla szó súlya q r 47 tétel (A szimplex kód egyenl súlyú) Egy C S r,q szimplex kód minden nemnulla kódszavának q r a súlya Bizonyítás Legyen G a C S r,q egy generátormátrixa Tegyük fel, hogy van olyan szó, amelynek súlya > q r Válasszunk olyan G-t a kódhoz, melynek els sorába ezt a kódszót írjuk, majd G minden oszlopát osszuk el az oszlop legföls elemével, ha az nem 0 vagy Így egy ekvivalens kódot kapunk, melyben a skatulyaelv miatt van két azonos oszlop, hisz, r sorba legfeljebb q r különböz vektor írható Ez ellentmond annak, hogy e mátrixnak bármely két oszlopa lineárisan független, hisz a Hamming-kód minimális távolsága 3 Tegyük fel, hogy van olyan szó, amelynek súlya < q r Az el z ekhez hasonlóan egy generátormátrix els sorába ezt e vektort írva, majd minden 0-kezdet oszlopot leosztva az els nem nulla koordinátával, (q r )/(q ) q r = q r 2 + +q+ darabnál több 0-kezdet vektort kapunk, így ismét a skatulyaelv miatt van olyan i szám, hogy a pontosan i darab 0-val kezd d vektorból q r i -nél több van, vagyis van köztük két azonos 48 következmény S r,q paraméterei [ q r ], r, qr q q 49 feladat (Bináris Hamming kód dekódolása) A bináris Hamming-kód H ellen rz mátrixát lexikograkusnak nevezzük, ha i-edik oszlopában az i szám bináris alakja szerepel (a legkisebb helyiérték bittel az els sorban) Például H 3,2 lexikograkus ellen rz mátrixa (3) Hogyan egyszer - södik a szindróma dekódolás? 40 feladat (Kódtömörítés) Tegyük fel, hogy egy 40 jeles szavakból álló ternér kódot használunk, melyben mind a 3 40 szó el fordulhat üzenetként, és ha az üzenet továbbításában egy jelhiba történik, azt a szövegkörnyezetet felhasználva még ki tudjuk javítani Hogyan tudnánk ezt felhasználva információveszteség nélkül tömöríteni az üzenetet? 43 B vített bináris Hamming-kód A bináris Hamming-kódból egy ellen rz összeg hozzáadásával konstruált kódot b vített bináris Hamming-kódnak nevezzük Jele EH r,2 4 tétel Az EH r,2 kód paraméterei [2 r, 2 r r, 4] Ha egy bináris Hamming-kód ellen rz mátrixa H, akkor az ellen rz összeg els helyre írásával kapott b vített kód egyik ellen rz mátrixa H = 0 H 0 Bizonyítás A b vítés eggyel növeli n értékét, k pedig nem változik A d érték is n, mivel a minimális 3-súlyú szavak mindegyikéb l 4-súlyú lesz Így e kód paraméterei [2 r, 2 r r, 4] Legyen H egy bináris Hamming-kód egy tetsz leges ellen rz mátrixa Mivel H r n-es, ezért a paraméterekb l következ en egy (r + ) n-es mátrix lesz a b vített kód ellen rz mátrixa Elég tehát megmutatnunk, hogy H sorai lineárisan függetlenek (ez nyilvánvaló), másrészt ha c = (c,, c n ) egy Hamming kódszó, azaz ch = 0, akkor a c = ( n i= c i, c,, c n ) szóra c H = 0 Ez is nyilvánvaló, a c-nak a H sorvektoraival való szorzatára vagy a ch = 0 összefüggés vagy a n i= c i + c + + c n = 0 összefüggés használható Például EH,2, EH 2,2, EH 3,2, EH 4,2 egy-egy ellen rz mátrixa a Hamming-kód lexikograkus ellen rz mátrixból konstruálva: [ ] 0 0 0 0 0 0 0 0 0 0 0 (4) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 Els rend bináris ReedMuller-kód A b vített bináris EH m,2 Hamming-kód duálisát els rend ReedMuller-kódnak nevezzük, jelölése RM,m (Mivel itt az m paraméter már nem a redundanciát jelenti, nem az r bet t használjuk) Kis m-ek esetei: RM, = F 2 2, RM,2 = a 2
4-hosszú paritásellen rz kód, RM,3 = EH 3,2, mert önduális Az RM,5 kód érdekessége, hogy 969-ben ezt használta a Mariner 6 és 7 a Marsról készült képek továbbításánál A (4) mátrixai tehát generátormátrixai e kódoknak Ezek rekurzív tulajdonsága leolvasható e mátrixokról, ha másként blokkosítjuk: [ ] 0 0 0 0 0 0 0 0 0 0 0 (5) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A rekurzív összefüggés tehát: H 0 = [], H m = [ Hm ] H m 00 0 42 tétel Az RM,m kód bináris [2 m, m +, 2 m ] 2 -kód Bizonyítás Az n = 2 m, k = m+ világos a denícióból Az RM,m kód generátormátrixának konstrukciójából következik, hogy az S m,2 kód kódszavai egy vezet 0-val, valamint ezek komplementerei (az vektorral való összeg miatt) mind kódszavak, ezzel viszont meg is kaptuk mind a 2 m+ kódszót E szavak súlya a 000 0 és az kódszavakat kivéve 2 m Az RM,m kód is ekvidisztáns, hisz a komplementer vektorpárokat kivéve bármely két szó távolsága 2 m 45 Hadamard dekódolás Végezzük el az RM,m kód szavain az alábbi F 2 R jelcserét: 0, A c kódszó képét jelölje c ± {, } n, az így kapott kódot RM ±,m 43 lemma RM ±,m kódszavaira igazak az alábbiak: Ha c ± RM ±,m, akkor c± RM ±,m, így a kód 2m+ szava indexelhet úgy, hogy c ± i = c ± j, ha j i = 2m 2 Ha c ± i, c± j RM±,m, akkor 2 m ha c ± c ± i c ± i = c ± j j = 2 m ha c ± i = c ± j 0 ha c ± i ±c ± j Bizonyítás A csupa- kódszóra ( + c) ± = c ±, ami igazolja az els állítást Ha x ±, y ± {, } n két tetsz leges ±-vektor, akkor x ± y ± = n 2 d H (x ±, y ± ), ugyanis a skaláris szorzat megegyezik azon koordináták száma, ahol a két kód megegyezik (n d H (x ±, y ± )), mínusz azon koordináták száma, ahol különböznek (d H (x ±, y ± )) Az x ± = c ± i, y± = c ± j, c± i = c ± j, 3 ábra A 44 feladatban konstruált Hadamard mátrixok ábrázolása az fehér, fekete megfeleletéssel c ± i = c ± j esetben d H (x ±, y ± ) = n/2, ami bizonyítja a második állítást A lemma szerinti indexeléssel készítsünk egy M mátrixot az RM ±,m kód els 2m szavából Például az RM ±,2 kódnál az (5)-beli generátormátrixából kiindulva, és az -vektor helyett a 0-vektort használva: G = 0 0 = 0 0 0 0 0 0 = 0 0 0 0 0 0 0 0 0 0 0 0 = M = 0 0 Mivel így egyik kódszó ellentettje sem szerepel e mátrix soraiban, ezért fennáll az MM T = ni összefüggés Azokat az n n-es ±-mátrixokat, melyek eleget tesznek az MM T = ni n (6) összefüggésnek, n-edrend Hadamard-mátrixoknak nevezzük 44 feladat Ha M n egy n-edrend Hadamard mátrixot jelöl, akkor n =, n = 2 vagy n 0 (mod 4) 2 M n M m egy nm-rend Hadamard-mátrix ( a Kronecker-szorzatot jelöli) 3 Ha M 2 = [ ], akkor a rekurzív M 2 n = M 2 M 2 n összefüggés Hadamard-mátrixokat ad (ld a 3 ábrát) Az mindmáig nyitott kérdés, hogy milyen n-ekre létezik n-edrend Hadamard-mátrix Sejtés, hogy minden 4-gyel osztható értékre létezik 000 alatti eldöntetlen értékek: 668, 76, 892 3
Mivel x ± y ± = n 2 d H (x ±, y ± ), ezért a ML-dekódolás azzal ekvivalens, hogy egy fogadott x szó ahhoz az c kódszóhoz van legközelebb, mellyel vett skaláris szorzata maximális abszolút érték A Hadamard-dekódolás az az eljárás, melyben a fogadott x szóhoz az M mátrixnak azt a sorát választjuk, amellyel vett skaláris szorzata maximális abszolút érték, azaz amely az Mx T legnagyobb abszolút érték koordinátájához tartozik Például legyen a fogadott vektor x = (,,,,,,, ) Ekkor az M 8 x T legnagyobb abszolút érték koordinátája a 7-dik, és negatív el jel : 2 2 2 = 2 2 2 6 2 Ezért az M 7-dik sorvektorának -szerese lesz x Hadamard-dekódoltja, azaz a c 7+8 = c 5 = (,,,,,,, ) kódszó E módszer lágy dekódolásnál is ugyanúgy használható (azaz amikor nem a dekóder által meghatározott jelet, hanem a demodulátor által nyújtott, bizonytalanabb értéket kapjuk vissza) Például ha az y = ( 3, 0, 0, 06, 6,, 02, 0) vektort mérjük a csatornán, az My T = (02, 08, 6, 8, 4, 48, 20, 34) alapján a 6-dik sor ellentettje a legvalószín bb üzenet 45 feladat Az r-edrend RM r,m Reed-Muller-kód 5 Ciklikus kód 5 Alapfogalmak 5 deníció A C lineáris kód ciklikus, ha bármely c = (c 0,, c n ) C esetén c = (c n, c 0,, c n 2 ) C Könnyen ellen rizhet, hogy az ismétl kód és a nullösszeg kód ciklikus, és hogy a H 3,2 Hamming kód megfelel koordinátacserével ciklikussá tehet A ciklikusság és a linearitás független egymástól Például a {000, 0, 0, 0, } kódban minden szó ciklikus eltoltja is kódszó, de e kód nem lineáris Használjuk a kölcsönösen egyértelm Ha c = (c n, c 0,, c n 2 ), akkor a hozzárendelt polinom c(x) = c n + c 0 x + + c n 2 x n = xc(x) c n (x n ) azaz c(x) = xc(x) mod (x n ) Ennek alapján tetsz leges f(x) F q [x] polinomra f(x) C (mod x n ) azt jelöli, hogy f(x) mod (x n ) hozzárendelt kódszava C-ben van Elegánsabb, ha úgy tekintünk a kódra, hogy C F q [x]/(x n ) Például a bináris C = {000, 0, 0, 0, } kódra +x 4 C (mod x 3 ), mert +x 4 = +x mod (x 3 ), amihez az 0 szó tartozik 52 tétel Legyen C {0} egy F q fölötti n-hosszú ciklikus kód Egyetlen minimális fokú g(x) C f polinom létezik, és erre C = {f(x)g(x) : f(x) F q [x] n r }, ahol r = deg g(x) 2 k = n r 3 g(x) x n az F q [x]-ben, azaz van olyan h(x) F q [x] n, hogy g(x)h(x) = x n Bizonyítás El ször belátjuk, hogy mod (x n ) polinomok ideált alkotnak: C ciklikus x i c(x) C (mod x n ), C lineáris a i x i c(x) C (mod x n ), a(x) F q [x] : a(x)c(x) C (mod x n ) Mivel C {0}, van (legalább) egy minimális fokú - f együtthatójú kódpolinom, legyen egy ilyen g(x), foka legyen r Az el z ek szerint minden f(x) F q [x] n r polinomra f(x)g(x) C Megmutatjuk egyrészt, hogy g egyértelm, másrészt, hogy minden c(x) C polinomhoz van olyan f(x) F q [x] n r, hogy f(x)g(x) = c(x) g(x) egyértelm, hisz ha létezne egy g (x) g(x) f polinom is, akkor g(x) g (x) 0 kisebb fokú lenne, ami ellentmondás (Tudjuk, az F[x] polinomgy r f ideálgy - r ) Legyen c(x) C Ekkor létezik olyan f(x) és s(x) polinom, hogy c(x) = f(x)g(x) + s(x), és deg s(x) < deg g(x) = r Mivel s(x) = c(x) f(x)g(x) és a jobb oldal C-beli, ezért s(x) is, ami csak akkor lehet, ha s(x) = 0 és c(x) = f(x)g(x) A C ideál altér is, melynek dimenziója a konstrukcióból leolvasható: n r A fentihez hasonló érveléssel: egyértelm en létezik olyan h(x) és s(x) polinom, hogy deg s(x) < deg g(x), és x n = h(x)g(x) + s(x) Ekkor s(x) ( h(x))g(x) (mod x n ), azaz s(x) C, ami a fokszáma miatt csak s(x) = 0 esetén lehetséges a = (a 0,, a n ) F n q a(x) = a 0 + +a n x n F q [x] A tételbeli g(x) polinomot a C lineáris ciklikus kód generátorpolinomjának, a h(x) polinomot ellen rz poli- n megfeleltetést Az a(x) az a vektorhoz (szóhoz) rendelt polinom, a az a(x) polinomhoz rendelt szó A c c(x) hozzá- A fenti tétel kiterjeszthet a nullvektorból álló C = {0} nomjának nevezzük rendeléssel azonosítjuk a kódszavak e két megadását, amit kódra is azzal a megállapodással, hogy ekkor x n a generátorpolinom a c(x) C jelöléssel is kifejezünk 4
53 példa Soroljuk fel az összes 4- és 7-hosszú bináris, ciklikus kódot! Megoldás A 4-hosszú kódok generátorpolinomjai osztói az x 4 = x 4 + = (x + ) 4 polinomnak g(x) C kód 6 F 4 2 x + 8 {00, 00, 0000, } x 2 + 4 {00, 0000, } x 3 + x 2 + x + 2 {, 0000} x 4 + {0000} A 7-hosszú kódok generátorpolinomjai osztói az x 7 = x 7 + = (x + )(x 3 + x + )(x 3 + x 2 + ) polinomnak g(x) C kód 28 F 7 2 x + 64 paritásellen rz kód x 3 + x + 6 [7, 4] Hamming-kód x 3 + x 2 + 6 [7, 4] Hamming-kód x 4 + x 3 + x 2 + 8 [7, 3] sziplex kód x 4 + x 2 + x + 8 [7, 3] sziplex kód x 6 + x 5 + x 4 + x 3 + x 2 + x + 2 ismétl kód x 7 + {0000000} 54 tétel Ha C egy ciklikus n-hosszú kód, akkor C = {c(x) F q [x] n : c(x)h(x) 0 (mod x n ) Bizonyítás : c(x) C f(x) : c(x) = f(x)g(x) c(x)h(x) = f(x)g(x)h(x) = f(x)(x n ) 0 (mod x n ) : c(x) F q [x] n c(x)h(x) = f(x)(x n ) = f(x)g(x)h(x) c(x)h(x) = (c(x) f(x)g(x)) h(x) = 0, de h(x) 0 c(x) = f(x)g(x) 55 feladat Egy ciklikus kódra szindróma a következ képp is deniálható: mivel a C kódhoz tartozó kódpolinomok pontosan azok, amelyek a g(x) generátorpolinom többszörösei, ezért egy tetsz leges p(x) polinom s(x) szindromája lehet a g(x)-szel való osztási maradéka, azaz p(x) = f(x)g(x) + s(x), ahol deg s < deg g, hisz s(x) pontosan akkor 0, ha p(x) kódpolinom A p(x) szindrómapolinomját jelölje s(x), az eltoltjához, azaz a p(x) polinomhoz tartozó szindrómát jelölje s (x) Mutassuk meg, hogy s (x) az xs(x) polinom g(x)-szel való osztási maradéka (Másként fogalmazva mutassuk meg, hogy a p(x) eltoltja modulo x n polinom szindrómája a p(x) szindrómájának eltoltja modulo g(x)) 52 Generátormátrixok Világos, hogy a g(x) = g 0 + + g r x r generátorpolinomú kód generátormátrixa g 0 g g r g r 0 0 0 g 0 g g r g r 0 0 (7) 0 0 g 0 g g r g r 0 0 0 g 0 g g r g r ugyanis e mátrix valóban n k rangú, hisz g r =, (n k) nes, és sorvektorai kódszavak Ezt nevezik ciklikus generátormátrixnak Sorlépcs s alakú a f átlóban nemnulla elemekkel, ugyanis g(x)h(x) = x n miatt g 0 h 0 = g(0)h(0) = 0 n =, így g 0 0 Például az x 3 + x 2 + generátorpolinomú [7, 4]-kód és az x 4 + x 2 + x + generátorpolinomú [7, 3]-kód generátormátrixai: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0, 0 0 0 (8) 0 0 0 0 0 0 0 A ciklikus kódok másik szép tulajdonsága, hogy a ciklikus mátrix sorlépcs s alakú, így els k oszlopa lineárisan független, azaz a kódhoz van szisztematikus kódolás, és így standard alakú generátormátrix is 56 tétel Egy C ciklikus lineáris kód m = (m 0,, m k ) (m 0,, m k, s 0,, s r ) standard kódolásának maradék r koordinátája az x r m(x) polinom g(x)-szel való maradékos osztásából kapott s(x) = r i=0 s ix i maradék együtthatóiból áll Bizonyítás A maradékos osztás legyen x r m(x) = f(x)g(x) + s(x), ahol deg s(x) < r Ebb l f(x)g(x) = x r m(x) s(x) ( s 0,, s r, m 0,, m k ) ami C-beli, és ennek k-szoros ciklikus eltoltja, ami ugyancsak C-beli, épp az m üzenet keresett szisztematikus kódolása 57 példa Határozzuk meg az x 3 +x 2 + generátorpolinomú [7, 4]-kód és az x 4 +x 2 +x+ = (x+)(x 3 +x 2 +) generátorpolinomú [7, 3]-kód standard generátormátrixát, majd bizonyítsuk, hogy a kódok egymás duálisai megoldás A (8) generátormátrixaiból elemi sorm veletekkel megkapható a standard generátormátrix: 0 0 0 0 0 0 0 0 0 0 0 0, 0 0 0 0 0 0 0 0 0 0 0 0 0 5