Visontay Péter (sentinel@sch.bme.hu) 2002. január. 1. Alapfogalmak



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

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.

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.

Diszkrét matematika 2.C szakirány

KÓDOLÁSTECHNIKA PZH december 18.

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

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

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

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

Diszkrét matematika 2.

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

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

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

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

Számítógépes Hálózatok 2012

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

Diszkrét matematika alapfogalmak

1. feladatsor Komplex számok

Diszkrét matematika II. feladatok

Diszkrét matematika 2.

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

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.

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

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

Diszkrét matematika 2.C szakirány

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

Diszkrét matematika II. feladatok

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

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

Diszkrét matematika 2.C szakirány

Ennek két lépéssel balra történõ ciklikus eltolása az alábbi.

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

Mátrixok 2017 Mátrixok

15. LINEÁRIS EGYENLETRENDSZEREK

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

Bevezetés az algebrába 2

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

Vektorterek. =a gyakorlatokon megoldásra ajánlott

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

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

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

Algoritmuselmélet gyakorlat (MMN111G)

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

Gauss-eliminációval, Cholesky felbontás, QR felbontás

1. A maradékos osztás

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

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

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

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

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

Számítógépes Hálózatok. 7. gyakorlat

Vektorok, mátrixok, lineáris egyenletrendszerek

Kongruenciák. Waldhauser Tamás

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

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

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

Mer legesség. Wettl Ferenc Wettl Ferenc Mer legesség / 40

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

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

1.1. Definíció. Azt mondjuk, hogy a oszója b-nek, vagy más szóval, b osztható a-val, ha létezik olyan x Z, hogy b = ax. Ennek jelölése a b.

Matematika (mesterképzés)

Algebrai alapismeretek az Algebrai síkgörbék c. tárgyhoz. 1. Integritástartományok, oszthatóság

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

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

Polinomok (előadásvázlat, október 21.) Maróti Miklós

Diszkrét matematika 2.C szakirány

10. Feladat. Döntse el, hogy igaz vagy hamis. Név:...

Lineáris algebra (10A103)

Lineáris kódok. u esetén u oszlopvektor, u T ( n, k ) május 31. Hibajavító kódok 2. 1

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

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

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

Kódelmélet és kriptográa

Tartalom. Állapottér reprezentációk tulajdonságai stabilitás irányíthatóság megfigyelhetőség minimalitás

Alapvető polinomalgoritmusok

6. Előadás. Megyesi László: Lineáris algebra, oldal. 6. előadás Bázis, dimenzió

1. A maradékos osztás

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

Infokommuniká cio Forrá sko dolá s e s hibátu ro ko dolá s

3. Lineáris differenciálegyenletek

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

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

3. el adás: Determinánsok

Bázistranszformáció és alkalmazásai 2.

Határozatlan integrál

Mátrixok, mátrixműveletek

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, mátrixegyenlet

Gauss elimináció, LU felbontás

Az adatkapcsolati réteg

Lineáris algebra gyakorlat

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

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

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

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

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.

Saj at ert ek-probl em ak febru ar 26.

A parciális törtekre bontás?

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

Számítógépes Hálózatok. 5. gyakorlat

Átírás:

Kódelmélet összefoglaló Visontay Péter (sentinel@schbmehu) 2002 január 1 Alapfogalmak Kódolás: a k hosszú u üzenetet egy n hosszú c kódszóba képézzük le Hibák: a csatorna két végén megjelenő c bemeneti és v kimeneti vektorok Hamming távolsága d(c, v) azon i pozíciók száma, ahol c i = v i Ez az átküldött üzenet hibáinak száma Egyszerű hiba: a hiba helye és értéke is ismeretlen Törléses hiba: a hiba helye ismert, csak az érték nem Dekódolás: Meghatározzuk, hogy a csatorna kimenetén megjelenő jelsorozat melyik kódszónak felelt meg a csatorna bemenetén A kódolófüggvény inverzével a kódszóból visszaállítjuk az eredeti üzenetet Hibás detekció: ha a hibák egy kódszót egy másikba visznek át Kódtávolság: a kód szavai közötti minimális Hamming-táv: d min = min d(c, c ) Hibajelzés: egy d min kódtávolságú kód d 1 hibát tud jelezni d min 1 2 egyszerű hibát tud javítani d min 1 törléses hibát tud javítani Kód paramétere: ha egy kódolás k hosszú üzeneteket n hosszú kódba képez le, a kód (n, k) paraméterű Ha d min értékét ismerjük, a kód (n, k, d min ) paraméterű Singleton-korlát (1 kódábécé elemszáma): alak): egy M kódszóból álló, n hosszú és d min kódtávú kódra (q a M q n d min+1 Singleton-korlát (2 alak): egy (n, k) paraméterű kódra a korlát alakja: d min n k + 1 MDS kód: azon kódot, melyre a Singleton-korlátban = áll, maximális távolságú (maximum distance separable) kódnak nevezzük Hamming-korlát: ha egy (n, k) paraméterű kód t hibát tud javítani, akkor t i=0 ( ) n (q 1) i q n k i 1

Perfekt kód: olyan kód, melyre a Hamming-korlátban = áll 2 Bináris lineáris kódok Lineáris kód: egy C kód lineáris, ha minden c, c C-re c + c C A 0 vektor minden lineáris kódnak eleme Generátormátrix: egy C kód generátormátrixa a C lineáris tér egy bázisának vektoraiból (mint sorvektorokból) álló G mátrix A generátormátrix segítségével kódolhatjuk az üzeneteket, azaz ha u = (u 1, u 2,, u k ), akkor a kódolt üzenet: c = ug Megj: több generátormátrix is generálhatja ugyanazt a kódszóhalmazt Szisztematikus kód: 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ú üzenetet kapjuk, azaz kódolás során a k hosszú üzenetet egészítjük ki n k karakterrel Szisztematikus kód generátormátrixa: G = (I k, B) ahol I k a k k méretű egységmátrix, B pedig egy k (n k) méretű mátrix (így G mérete k n) Innen a kódszó szerkezete: c = (u 1, u 2,, u k, c k+1, c k+2,, c n ) Itt a kód első k karaktere az üzenetszegmens, a maradék a paritásszegmens Paritásmátrix: olyan n k n-es H mátrix, melyre Hc T = 0 akkor és csak akkor, ha a c C (Azaz ezt használjuk annak ellenőrzésére, hogy egy kód helyes-e) Minden lineáris kódnak van paritásmátrixa Tétel: minden C lineáris kódra igaz, hogy HG T = 0 Paritásmátrix számítása: G = (I k, B) = H = ( B T, I n k ) Itt a B-t az adott test (pl GF (7)) felett kell értelmezni, így pl bináris esetben B T = B T! Vektor súlya: egy c vektor w(c) súlya a koordinátái közt lévő nem nulla elemek száma Kód minimális súlya: w min = min w(c) c C,c =0 Tétel: minden lineáris kód kódtávolsága megegyezik a minimális súlyával, azaz d min = w min 2

Tétel: minden lineáris kód kódtávolsága egyenlő a paritásmátrixa azon oszlopainak minimális számával, melyek lineárisan összefüggők Ortogonális komplemens: egy kód ortogonális komplemense (duálisa) a paritásmátrix mint generátormátrix által képzett kód Szindróma: s = eh T ahol az e = v c vektor a hibavektor, a szindrómavektor dimenziója pedig n k A szindróma lényege, hogy ha a Hc T kiszámításakor nem 0-t kapunk (azaz a vett kódszó hibás), akkor ki tudjuk következtetni, hogy mi a hibavektor, amit a vett kódból kivonva kapjuk meg az eredeti kódszót Standard elrendezési táblázat: Szindróma Javítható hibaminták s (0) e (0) = 0 c (1) c (2) s (1) e (1) c (1) + e (1) c (2) + e (1) s (2) e (2) c (1) + e (2) c (2) + e (2) Az első oszlopban felsoroljuk az összes lehetséges szindrómát (q n k db) A második oszlop felírása az s T = He T egyenlet megoldásával történik (az e-k lesznek a javítható hibaminták) Ha több lehetséges megoldás van, akkor a minimális súlyút kell választani A táblázat segítségével végezhető a táblázatos dekódolás Példa: e 1 1 0 0 1 1 1 e 2 0 = 0 1 0 0 1 e 3 1 1 0 0 1 1 e 4 } {{ } } {{ } szindróma H e 5 } {{ } hibavektor Megoldás: Az egyenletrendszer megoldásához ki kell választani, hogy a paritásmátrix melyik oszlopainak összege adja ki a szindrómát A hibavektorban ezen oszlopok i sorszámainak megfelelő e i -k értéke 1, a többié 0 Ez esetben a jó megoldások: (4); (1, 3); (2, 5); (1, 2, 3, 4, 5); hiszen ezen oszlopok összege [1 0 1] T Mivel nekünk a minimális elemszámú megoldás kell, válasszuk az első megoldást, a 4 oszlopot Ez alapján a keresett hibavektor [0 0 0 1 0] T Bináris Hamming-kód: egy hibát tud javítani, paritásmátrixa az összes lehetséges n k hosszú nemnulla oszlopvektorból álló mátrix Pl (7,4) paraméterű Hamming-kód: 1 1 0 1 1 0 0 H = 1 0 1 1 0 1 0 0 1 1 1 0 0 1 3

Tétel: a Hamming kód perfekt, és a Hamming korlát alapján igaz rá, hogy 1 + n = 2 n k 3 Nembináris lineáris kódok Véges test: egy q elemszámú testet véges testnek nevezünk és GF (q)-val jelöljük (Test: értelmezett rajta az összeadás és szorzás) Tétel: GF (q) esetén q = p m alakú, ahol p prím és m 1 Elem rendje: Minden 0 a GF (q)-ra létezik egy legkisebb m természetes szám, amit az a elem rendjének nevezünk, és melyre a m = 1 Primitív elem: Egy α GF (q)-t a GF (q) primitív elemének nevezzük, ha α rendje q 1 Különböző testek primitív elemei: GF (q) Primitív elemek GF (3) 2 GF (5) 2, 3 GF (7) 3, 5 GF (11) 2, 6, 7, 8 GF (13) 2, 6, 7, 11 Nembináris kód: hasonlóan értelmezett és generált, mint a bináris kódok, de értékkészlete egy GF (q) test elemeiből kerül ki Nembináris Hamming-kód: egy hibát tud javítani A paritásmátrix oszlopai mind különbözőek, nincs köztük nullvektor, és az első nem nulla elem minden oszlopban 1 Példa: az (n, n 2) paraméterű Hamming-kód (ez MDS kód): H = ( 1 1 1 1 1 ) 0 1 α α 2 α n 3 0 1 Itt α egy nem 0 elem, és a hatványozások a GF (q) test felett értelmezettek! (Azaz pl 3 2 = 2 mod 7) Tétel: a maximális hosszú nembináris Hamming-kód perfekt, és a Hamming korlát alapján igaz rá, hogy 1 + n(q 1) = q n k Véges test feletti polinomok: a(x) = a 0 + a 1 x + + a m x m GF (q) feletti n-edfokú polinom, ha a i, x GF (q) és a m = 0 A polinom fokszáma deg a(x) Műveletek véges test feletti polinomokkal: Összeadás: az azonos fokú együtthatókat összeadjuk Szorzás: minden tagot minden taggal szorzunk, majd az azonos fokú tagokat csoportosítjuk A műveletek elvégzése után a tagoknak venni kell a q-val vett osztási maradékát Pl 15x 2 + 9x = x 2 + 2x mod 7 4

Euklideszi osztás polinomokra: a(x) = q(x)d(x) + r(x) Ha nincs maradék, d(x) a(x) (d(x) osztója a(x)-nek) Reed-Solomon kód: lineáris kód, kódtávolsága d min = n k + 1 (MDS kód) Megjegyzés: ha t és n meg van adva egy feladatban, de k nincs, akkor használhatjuk a 2t = n k összefüggést Primitív (szóhosszú) Reed-Solomon kód: olyan, GF (q) feletti RS-kód, melynek kódszóhosszára igaz, hogy n = q 1 Reed-Solomon kód 1 konstrukció: Legyenek α 0, α 1,, α n 1 a GF (q) különböző elemei, és u = (u 0,, u k 1 ), amelyhez az u(x) = u 0 + u 1 x + + u k 1 x k 1 üzenetpolinomot rendeljük Ekkor a kódszó előállítása: c 0 = u(α 0 ), c 1 = u(α 1 ), 1 1 1 1 α 0 α 1 α 2 α n 1 G = α0 k 1 α1 k 1 α2 k 1 αn 1 k 1 Reed-Solomon kód 2 konstrukció: Legyen α a GF (q) egy nem 0 eleme, melynek rendje m n és az 1 konstrukcióban legyen α i = α i : 1 1 1 1 1 α α 2 α n 1 G = 1 α 2 α 4 α 2(n 1) 1 α k 1 α 2(k 1) α (n 1)(k 1) Reed-Solomon kód 3 konstrukció: A c vektorhoz rendeljük a c(x) = c 0 + c 1 x + + c n 1 x n 1 polinomot Ha az α elem rendje m n, akkor a kód definíciója: C = {c : c(α i ) = 0, i = 1, 2,, n k} {c : Hc T = 0} 1 α α 2 α n 1 1 α 2 α 4 α 2(n 1) H = 1 α n k α 2(n k) α (n k)(n 1) Nem rövidített Reed-Solomon kód: ha a 3 konstrukcióban m = n, azaz a generáló elem rendje megegyezik a kódszóhosszal Ilyenkor a 3 és a 2 konstrukció megegyezik Rövidített Reed-Solomon kód: ha a 3 konstrukcióban m > n Reed-Solomon kódok dekódolása: Bonyolult, lásd TK243 4 Aritmetika GF (p m )-ben 5

Irreducíbilis polinom: GF (p) feletti, nem nulladfokú P (x) polinom irreducíbilis, ha nem bontható fel két, nála alacsonyabb fokú GF (p) feletti polinom szorzatára Bináris esetben irreducíbilis polinomok: Néhány példa: x 2 + x + 1; x 3 + x + 1; x 4 + x + 1; x 5 + x 2 + 1; x 6 + x + 1; x 7 + x 3 + 1; GF (p m ) GF (p) konverzió Legyen p prím, P (x) egy GF (p) feletti irreducíbilis polinom és Q = {0, 1,, p m 1} Q két kiválasztott elemének (a és b) kölcsönösen egyértelműen feleltessünk meg egy-egy GF (p) feletti, legfeljebb (m 1)-edfokú polinomot a + b legyen az a c Q, melynek megfelelő c(x)-re c(x) = a(x) + b(x) a b legyen az a d Q, melynek megfelelő d(x)-re d(x) = a(x) b(x) mod P (x) Ezzel az aritmetikával Q egy GF (p m ) GF (2 2 )-beli aritmetika: P (x) = x 2 + x + 1 Testelem Polinom 0 0 1 1 2 x 3 x + 1 GF (2 2 )-beli műveletek: Összeadás: koordinátánkénti (átvitel nélküli) bináris összeadás, pl 11 + 01 = 10 Szorzás: a két számnak megfelelő polinomokat összeszorozzuk és vesszük a szorzat P (x) szerinti osztási maradékát, pl 3 3 = (x + 1)(x + 1) = x 2 + 2x + 1 = x 2 + 1 = x mod (x 2 + x + 1) GF (2 2 ) GF (2) műveleti táblái a fentiek alapján felírva: + 0 1 2 3 0 0 1 2 3 1 1 0 3 2 2 2 3 0 1 3 3 2 1 0 0 1 2 3 0 0 0 0 0 1 0 1 2 3 2 0 2 3 1 3 0 3 1 2 5 Ciklikus kódok Ciklikus eltolás: Egy c = (c 0, c 1,, c n 1 ) vektor ciklikus eltoltja az Sc = (c n 1, c 0,, c n 2 ) Ciklikus kód: olyan kód, amiben bármely kódszó ciklikus eltoltja is kódszó Kód(szó)polinom: a c = (c 0, c 1,, c n 1 ) kódszóhoz rendelt c(x) = c 0 + c 1 x + + c n 1 x n 1 polinom 6

Generátorpolinom: minden (n, k) paraméterű, ciklikus, lineáris kódban a nem azonosan 0 kódpolinomok között egyértelműen létezik egy minimális fokszámú g(x) főpolinom Egy c C akkor és csak akkor, ha g(x) c(x), azaz létezik egy u(x) üzenetpolinom úgy, hogy c(x) = g(x)u(x) Tétel: a generátorpolinom fokszáma n k Tétel: ciklikus, lineáris kód generátorpolinomára g(x) x n 1 Generátorpolinom generátormátrixa (1 módszer): 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 0 g 0 g 1 g n k 1 1 g n k = 1 minden sorban, mert g(x) főpolinom (= legmagasabb fokú tagjának együtthatója 1) Megj: ez a felírás nem szisztematikus! Generátorpolinom generátormátrixa (2 módszer, szisztematikus generálás): G első k oszlopa az I k egységmátrix lesz, a maradék n k k elem kitöltése: 1 Kiszámítjuk az [x (n k)+i mod g(x)] maradékpolinomokat i = 0, 1,, k 1-re Pl x 5 = x 2 (1 + x + x 3 ) x 2 (1 + x) = x 2 (1 + x) = 1 + x + x 2 mod (1 + x + x 3 ) 2 Az ezen polinomokhoz tartozó vektorokat (pl x 2 + x = [1 1 0]) beírjuk a generátormátrix üres soraiba (lentről felfelé haladva) Paritásellenőrző polinom: egy g(x) generátorpolinomú lineáris, ciklikus kód esetén h(x) = xn 1 g(x) Tétel: lineáris, ciklikus kód esetén c(x) akkor és csak akkor kódszó, ha c(x)h(x) = 0 mod (x n 1) Ciklikus Reed-Solomon kód: A 3-as RS-kód konstrukcióban legyen az n kódszóhossz egyenlő az α elem m rendjével (nem rövidített RS-kód) Ekkor a kód ciklikus és generátorpolinoma, valamint paritásellenőrző polinoma: n k g CRS (x) = (x α i ) h CRS (x) = i=1 n i=n k+1 (x α i ) CRC kód: generátorpolinomával megadott bináris, ciklikus kód, melyet a generátorpolinom szerinti maradékos osztással, szisztematikusan generálnak (Lásd TK219, 418 tétel) 5 Vegyes kódok 7

BCH-kód: az n = q m 1 kódszóhosszú, GF (q) feletti kódot t hibát javító BCH-kódnak nevezzük, ha a g(x) generátorpolinomjának gyökei az α i GF (q m ), i = 1, 2,, 2t testelemek BCH-kód generátorpolinoma: lásd TK232 BSC(p) csatorna: p valószínűséggel elrontja a bitet, 1 p valószínűséggel hiba nélkül átviszi Rövidített kód: egy C(n, k) kód azon kódszavai által alkotott C(n i, k i) kód, melyeket a kód az i darab 0-val kezdődő üzenetekhez rendel Páros paritásbit (egyszerű paritásbit): a kódszó végére illesztett bit, mely a kódszó 1- eseinek számát párosra egészíti ki Paraméterek: C(n, k, d) = C (n + 1, k, d ) Ha d páros: d = d; ha d páratlan: d = d + 1 1 1 1 1 0 H C = H C 0 0 Páratlan paritásbit: a kódszó végére illesztett bit, mely a kódszó 1-eseinek számát páratlanra egészíti ki Paraméterek: C(n, k, d) = C (n + 1, k, d ) Ha d páros: d = d + 1; ha d páratlan: d = d Kódátfűzés: egy C(n, k, d) kód m db n hosszú kódszavát egy m n-es mátrixba rendezzük soronként, majd a mátrix oszlopait sorrendben kiolvasva kapjuk a C m = C(mn, mk, d) kódot Hibacsomó: a hibavektor egy l hosszúságú szegmense hibacsomó, ha a szegmens első és utolsó karaktere nem zérus Tétel: ha g(x) a C kód generátorpolinoma, akkor g(x m ) a C m kód generátorpolinoma Tétel: A C m átfűzéses kód m t hosszú hibacsomót javít (t a C kód hibajavító képessége) Hibacsomójavító képesség: egy C(n, k) lineáris kód l hibacsomójavító képességére fennáll, hogy l n k 2 Reiger-optimalitás: ha egy kód hibacsomójavító képességére igaz, hogy l = n k 2, a kód Reiger-optimális Szorzatkód: egy C 1 (n 1, k 1, d 1 ) és egy C 2 (n 2, k 2, d 2 ) lineáris kód felhasználásával egy C 1 C 2 (n 1 n 2, k 1 k 2, d 1 d 2 ) kódot hozunk létre Szorzatkód generátormátrixa: lásd TK238 6 Transzformációs kódolás 8

Transzformációs kódolás: a Reed-Solomon kódok Fourier-transzformációt felhasználó kódolási módszere Paraméterek: legyen GF (q) = GF (p m ), ahol p prím; α pedig legyen GF (q) egy n-edrendű eleme (n a kódszóhossz) Üzenet trafókódolása: 1 Az u = (u 0, u 1,, u k 1 ) kódszó elé teszünk n k darab 0-t, így kapjuk meg az n hosszú spektrumot: C = (0, 0,, 0, u } {{ } 0, u 1,, u k 1 ) n k 2 A spektrumon elvégezzük az inverz Fourier-transzformációt: n 1 c i = f(n) α ij C j 3 Az így kapott c = (c 0, c 1,, c n ) a transzformációs kódolású kódszó f(n) számítása: Legyen a 1 az a inverze GF (p) fölött, azaz a a 1 = 1 mod p Pl 3 1 = 5 mod 7, mert 3 5 = 15 = 1 mod 7 Ekkor f(n) = (n mod p) 1 Bináris esetben f(n) = 1 Ha α primitív eleme GF (q)-nak, akkor f(n) = (p 1) 1 mod p j=0 7 Konvolúciós kódolás A konvolúciód kódolás alapelve: a forrás bitfolyama k bites üzenetkeretekre van osztva A kódoló m üzenetkeretet tárol léptetőregiszterben (időegység alatt 1 keretet léptetünk be a regiszterbe, a legrégebbi keretet pedig eldobjuk) Minden időegység alatt az éppen bejövő új keret és a tárolt m keret alapján a kódoló kiszámol egy n bit hosszúságú kódszókeretet, ami a kódoló kimenetén megjelenik Ezen kódolás eredménye egy fa-kód Kódsebesség: R = k n Kényszerhossz: K = (m + 1)k Blokkhossz: N = (m + 1)n Konvolúciós kód: egy (n, k) fa-kódot, ha lineáris, invariáns és véges kényszerhosszú, (N, K) konvolúciós kódnak hívunk Kibővített bináris fa reprezentáció: a fa csomópontjaiból két irányba léphetünk a kódolandó üzenetbitnek megfelelően A fa éleit azon bit n-essel címkézzük meg, amely a kódoló kimenetén megjelenik az aktuális üzenetbit belépésének hatására A gyökértől a fa élei mentén a fa leveleiig vezető utak egy-egy kódszónak felelnek meg A csomópontokat állapotokkal címkézzük meg (az állapotkódnak érdemes a shiftregiszterben éppen eltárolt biteket megfeleltetni) Állapotátmenet-gráf: az előbbi fa reprezentáció állapotkódjai lesznek a csomópontok 9

(állapotok), melyek mindegyikéből két nyíl vezet másik állapotokba címkézett, ahol i az üzenetbit, jk pedig a kimeneten megjelenő bitek Az él i/jk formában Trellis ábrázolás: a fa-ábrázoláshoz hasonló, de az egy mélységben lévő azonos állapotokat összevonjuk Az egymást követő élek utakat alkotnak, amelyek mindegyike a 00 állapotból indul, és oda is fut be végül A kódoló kétféle leírása (példa): Lineáris kombinációk Ekvivalens generátorpolinomok x 2i 1 = u i + u i 2 g 1 (x) = 1 + x 2 x 2i = u i + u i 1 + u i 2 g 2 (x) = 1 + x + x 2 Generátorpolinom-mátrix: általános esetben a g ij (x) az üzenetkeret i-edik bitje és a kódkeret j-edik bitje közti összefüggést írja le Ekkor a generátorpolinomokat mátrixba rendezhetjük: G(x) = [g ij (x)] Katasztrofális kód: egy konvolúciós kód katasztrofális, ha tetszőlegesen nagy Hamming-súlyú input-sorozat esetén korlátos Hamming-súlyú marad az output Tétel: egy kód akkor és csak akkor katasztrofális, ha állapotgráfjában létezik egy hurok, amelyet alkotó valamennyi élen a kódszókeretek 0 súlyúak i-edik minimális távolság: a legkisebb Hamming-táv az output sorozatok első i kódszókeret hosszú (i n bit) szegmense között Jelölése: d i Távolságprofil: d 1, d 2, d 3, Szabad távolság: d free = d = max d i Viterbi-dekódolás: a konvolúciós kódok maximum-likelihood dekódolására optimalizált algoritmus Lásd TK270 Leágazó kódszavak: Legyen a(d, i) a trellis-ábrázoláson a zéró kódszónak megfelelő útból az 1 csomópontban leágazó azon utak darabszáma, amelyek d Hamming-távolságra vannak és i súlyú üzenetekhez tartoznak T(D,I) meghatározása: Állapotgráf átrajzolása: 00 állapot felbontása A és B állapotokká Élek felcímkézése Ij D k alakú címkékkel, ahol j az üzenetbit, és k az élhez tartozó kimenet Hamming-súlya Egyenletrendszer felírása a csomópontokra, a pontba bemenő élek összegzésével (pl X = ID 2 A + IZ) B = T (D, I) A felhasználásával T (D, I) kiszámítása 10