Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1. 2 Az információ mérése m pozitív egészre legyen a 1, …, a m különböző üzenetek halmaza. Ha az a i üzenetet k i -szer fordul elő az adásban, akkor a.

Hasonló előadás


Az előadások a következő témára: "1. 2 Az információ mérése m pozitív egészre legyen a 1, …, a m különböző üzenetek halmaza. Ha az a i üzenetet k i -szer fordul elő az adásban, akkor a."— Előadás másolata:

1 1

2 2 Az információ mérése m pozitív egészre legyen a 1, …, a m különböző üzenetek halmaza. Ha az a i üzenetet k i -szer fordul elő az adásban, akkor a i gyakorisága k i, relatív gyakorisága: m-es az üzenetek eloszlása.

3 3 A definíciókból nyilvánvaló, hogy az a i üzenet egyedi információtartalma: ahol r egy egynél nagyobb valós szám az információ egysége. r = 2 esetén beszélünk bitekről. Az üzenetek átlagos információtartama

4 4 Általánosítva: egy m tagú eloszlás pozitív valós számokból álló p 0, p 1, …, p n sorozat, amelyre ahol az eloszlás entrópiája Tehát az átlagos információtartalom legfeljebb log r m bit.

5 5 Betűnkénti kódolás Legyenek A, B nem üres halmazok a kódolandó ábécé, illetve a kódoló ábécé betűinek halmaza. A megfelelő ábécéből képzett összes szó halmaza A +, illetve B +. Ha megengedjük az úgynevezett „üres” szót is, akkor A *, illetve B *. legalább 1 hosszú A betűnkénti kódolás tulajdonképpen egy  : A → B * függvény, amelyet kiterjesztünk egy  : A * → B * függvénnyé: injektív!

6 6 x = abc  A * prefix Az üres szó és x triviális prefix, infix, szuffix. Kódfa infix szuffix ac b

7 Morse – ábécé 7

8 8 Felbontható (egyértelműen dekódolható, veszteségmentes) kódok Prefix kód: prefix mentes! ha φ injektív, akkor ilyen Vesszős kód: a vessző olyan nemüres elem a kódszavak közül, amely minden kódszónak szuffixe, és egyetlen kódszónak sem prefixe, vagy infixe. Egyenletes (fix hosszúságú) kód: kódszavak hossza megegyezik. egy betűnkénti kód pontosan akkor prefix, ha Észrevétel: a kódfának csak a levelei kódszavak.

9 9 Tétel (McMillan-egyenlőtlenség) Legyen A = {a 1, …, a n }, |B| = r  2 és  : A → B + injektív leképezés. Ha a  által meghatározott betűnkénti kódolás felbontható, és l i = |  (a i )|, akkor és fordítva, ha l 1, …, l n olyan pozitív egészek, hogy akkor létezik az A halmaz elemeinek a B elemeivel való olyan prefix kódolása, hogy az a i betű kódjának a hossza l i.

10 10 Optimális kód Az előbbi jelöléseket használva az átlagos szóhosszúság: Az optimális kódról beszélünk, ha egy felbontható betűnkénti kód átlagos szóhosszúsága minimális. Ha egy tetszőleges felbontható kód átlagos szóhosszúsága l, akkor p i l i > l esetén a kód nem lehet optimális Létezik optimális kód ?  elég csak az l i  l/p i eseteket vizsgálni  ilyen kódok véges sokan vannak.

11 11 Tétel (optimális kód konstrukciója) Az előző tétel jelöléseivel, legyen n > 1. Tekintsünk egy optimális prefix kódot és kódfáját, továbbá legyen a kódszavak hosszának maximuma L. Ekkor

12 12 még a csonka csúcsokból is Továbbá

13 13 (5) egy optimális prefix kód kódfájában  nincs csonka csúcs, ha azaz ha egy csonka csúcs van, akkor annak m kifokára azaz trivi

14 14 akkor

15 15 éllel együtt átrakjuk a csonka csúcsra, akkor a kódhossz Biz. két betű kódját felcserélve l csökken - L-ről t + 1-re változik, tehát az átlag csökken.

16 16 (3) Tfh, hogy van olyan csonka csúcs, amelyből csak 1 él indul. (4) Tfh, van két csonka csúcs (2)  mindkettő az L – 1–edik szinten van az egyik csonka csúcshoz tartozó leveleket éllel együtt átrakjuk a másikra … …

17 17 (5) Tfh, n levél van a kódfában ha t levelet töröltünk, akkor t – 1-gyel csökken a levelek száma …végül s lépés után csak a gyökér marad. Ekkor azaz töröljük az egyik csúcshoz tartalmazó összes levelet ha van csonka csúcs, azzal kezdjük mert +1 keletkezik is

18 Huffman-kód (példa): |A| = 9, r = 4. eloszlás a: 0.20 b: 0.19 c: 0.16 d: 0.11 e: 0.10 f: 0.09 g: 0.06 h: 0.05 i: 0.04 a: 0.20 b: 0.19 c: 0.16 d: 0.11 e: 0.10 f: 0.09 j: 0.15 a: 0.20 b: 0.19 c: 0.16 k:  9 (mod 3)  lesz csonka csúcs!  Mennyit kell összefogni? m  2 + (7 mod (3))  m = l: 1.00 l kab c def j ghi 18

19 19 (7) Helyettesítsük az a k betű kódját m kódszóval, úgy hogy a prefix tulajdonság megmaradjon. Ekkor a kódolandó ábácé nőtt m – 1 betűvel. Indirekte tfh, az állítás nem igaz, és legyen φ * a A kapott kódot jelöljük φ –vel. a levelek száma

20 20 Az általánosság megsértése nélkül feltehetjük, hogy Konstrukció + (5)  φ és φ * kódfájában egyszerre van csonka csúcs, és ha van, akkor a kifoka ugyanannyi mindkét kódolásnál: m, az m db legkisebb valószínűséghez tartozó kódszó a legmagasabb szinten van a kódfában, és ugyanezen szinten vannak ha nincs, akkor m = r. φ * optimális + (1), (2)  azok a kódszavak, amelyek a csonka csúcshoz tartoznak.

21 21 Azonos szinten lévő kódszavak cseréje nem változtatja meg az átlag kódhosszt  feltehetjük, hogy mindkét kódfában az m db legkisebb valószínűségű kódszóhoz tartozó levél ugyanahhoz a csúcshoz tartozik.

22 22 Példák Paritásbit Ismétléses kód Def. Egy kódot t-hibajelzőnek nevezünk, ha minden olyan esetben jelez, ha a vett kódszó legfeljebb t helyen változik meg. Hibakorlátozó kódolás Def. A kód pontosan t-hibajelző, ha t-hibajelző, de nem t + 1 hibajelző, azaz van olyan t + 1 hiba, amelyet a kód nem jelez. A hibakorlátozó kódok elméleti vizsgálata során fel szokás tenni, hogy nincsenek elveszett bitek, tehát ugyanannyi bit érkezik, mint amennyit elküldtünk. Fontos feltétel továbbá, hogy egyenletes kódról van szó, tehát minden kódszó egyforma hosszú.

23 23 Kódok távolsága és súlya Legyen u, v a kódábécé két szava. Ekkor d(u, v) a két szó Hamming-távolsága, az azonos pozícióban lévő különböző jegyek száma. Általánosítva a C kódhalmazra, d(C) a kód távolsága, az összes kódszó-pár távolságának minimuma. legalább 2 elem esetén A Hamming-távolság rendelkezik a következő tulajdonságokkal:

24 Ha A kódábécé Abel-csoport, akkor legyen az u kódszó Hamming-súlya w(u), a nullától különböző jegyek száma u-ban. Az előbbiekhez hasonlóan w(C) jelenti a kód súlyát, azaz a nem nulla kódszavak súlyának minimumát. 24 Észrevételek d(u, v) = w(u – v), w(u) = d(u, 0). Csoport kódról beszélünk, ha C  A n, azaz ha C is Abel-csoport. Ekkor d(C) = w(C).

25 25 Észrevételek A fentebb bevezetett fogalmakkal: egy kód akkor és csak akkor t-hibajelző, ha t < d, és csak akkor pontosan t-hibajelző, ha t = d – 1. paritásbites kód: a kódszavak legalább 1 bitben különböznek  ha az eltérés pont 1 bit két közleményszóban  a paritásbit különbözik  Hamming-távolság 2, pontosan 1-hibajelző. ha Hamming-távolság 2  ha az eltérés pont 2 bit két közleményszóban  a paritásbit ugyanaz

26 26 Minimális távolságú dekódolás hibát észleltünk: nem létező kódszót kaptunk feladat: a hibás kódszóhoz keressük meg a „jót” döntési függvény: pontosan egy kódszót rendel a hibás szóhoz döntési hiba: nem a jó kódszót rendeli hozzá cél: hibalehetőség a lehető legkisebb legyen tehát azt várjuk a döntési függvénytől, hogy a kapott, esetleg hibás szóhoz azt a kódszót rendelje, amelynek a tőle vett távolsága minimális. Önkényesen feltételezzük, hogy a kapott kódszóban több a jó bit, mint a hibás, még akkor is, ha ez sajnos a valóságban nem mindig teljesül,  Minimális távolságú dekódolás

27 27 Mi van, ha több ilyen kódszó is van? Adunk egy algoritmust, amely „következetesen” választ egy kódszót, vagy nem döntünk, csak jelezzük a hibát.

28 28 Def. Egy kódot t-hibajavítónak nevezünk, ha minden olyan esetben helyesen javít, amikor a vett kódszó legfeljebb t helyen változik meg. Def. A kód pontosan t-hibajavító, ha t-hibajavító, de nem t + 1 hibajavító, azaz van olyan t + 1 hiba, amelyet a kód nem javít, vagy helytelenül javít. Ha minimális hosszúságú dekódolással dolgozunk, akkor a d távolságú kód minden esetén t-hibajavító, és ekkor pontosan hibajavító.

29 29 Duplázás: Triplázás: Ismétléses kód Kódszó: 1-hibajelző 2-hibajelző és 1-hibajavító

30 30 Kétdimenziós paritásellenőrzés m darab n-bites üzenet paritásbitek páratlanra paritásbitek párosra 1-hibajavító kódolás.

31 31 Def. Legyen A és S nem üres véges halmaz, n > 0 egész, φ: A  S + injektív, Im(φ) = C  S n. Ekkor C egy blokk-kód (n, M, d) S jelöléssel, ahol |C| = M és d = d(C). Def. Ha S Abel-csoport, és C  S n a komponensenkénti S-beli művelettel, akkor C csoportkód. Def. Ha S n egyben egy test feletti vektortér, és C ennek egy k-dimenziós altere (k  0 egész), akkor a kód lineáris. Jel.: [n, k, d]q, ahol q a test elemszáma. Def. Ha [n, k, d]q kódban bármely s 0 s 1 …s n – 2 s n – 1 kódszó esetén s n – 1 s 0 s 1 …s n – 2 is eleme a kódnak, akkor C ciklikus kód.

32 32 Hamming-korlát q elemű ábácé és n hosszú kódszavak esetén, ha C t-hibajavító, akkor  két kódszóra a tőlük legfeljebb t távolságra lévő szavak halmazai diszjunktak Mivel egy kódszótól pontosan j távolságra pontosan szó van, kapjuk, hogy Egyenlőség esetén tökéletes kód.

33 33 Singleton-korlát Ha q elemű ábácé és n hosszú szavaiból álló C kód távolsága d, akkor  kódszóból d – 1 betűt ( ugyanarról a d – 1 helyről) elhagyva a kódszavak még mindig különböznek, de csak n – d + 1 hosszúak  mindkét oldallogaritmusát véve Lineáris kód esetén a Singleton-korlát alakja: k  n – d + 1.

34 34 ahol k = n – d + 1. Miért szeparábilis? ezekre képezzük le az üzeneteket, Egyenlőség esetén maximális távolságú szeparábilis kód, ekkor  rögzített d – 1 = n – k helyen álló betűket elhagyva q k különböző szó marad a megmaradt d – 1 = n – k helyekre ellenőrző betűket írunk, így kódoló és ellenőrző betűk elválaszthatók lesznek.

35 35 Lineáris kód A gyakorlatban általában ilyeneket használnak. A test feletti n-esek, vagyis az alakú kódszavak tulajdonképpen ugyanezen test feletti alakú polinomoknak tekinthetők.

36 36 Def. A kód generátormátrixa az altér egy bázisa lesz, úgy hogy k darab sorvektorként írjuk a báziselemeket. Tehát kapunk egy G k  n-es mátrixot. Az előbbi k-dimenziós altér ortogonális altere rendelkezik azzal a tulajdonsággal, hogy a benne lévő vektorok szorzata egy altérbeli vektorral mindig 0-t ad. Hasonlóan G-hez, megkonstruálunk egy H (n – k)  n-es ellenőrző mátrixot, amelyben az ortogonális altér bázisvektorai vannak. Ekkor ahol G T a G mátrix transzponáltja.

37 37 Tegyük fel, hogy a kapott szavunk v  K n. Szorzunk a H ellenőrző mátrixszal, kódszó esetén azt kell kapjuk, hogy Hogyan azonosítjuk a kódszavakat? szindróma (hibajellemző) Megfelelően megkonstruált kód esetén, valamennyi hiba erejéig a kapott szorzat vektor el is tudja árulni, hogy hol keressük a hibát.

38 38 Cyclic Redundancy Check (CRC) F 2 -ből indulunk ki, tehát a kételemű testből, így az üzenetszó, illetve a kódszó is bitekből fog állni. Legyen a kódolni kívánt üzenet k hosszú, ekkor Veszünk egy m-edfokú polinomot, amely az úgynevezett g kódpolinom. redundáns bitek száma A k hosszúságú üzenetszót kiegészítjük jobbról m 0-val n hosszúságúra. Az így kapott szót (polinomot) osztjuk a kódpolinommal maradékosan, a maradékot beírjuk az előbbi 0-k helyére az üzenetszó után.

39 39 Kapjuk a kódszót, amely rendelkezik azzal a jó tulajdonsággal, hogy osztható a kódpolinommal  hibaellenőrzéskor a kapott szót, azaz a neki megfelelő polinomot osztani kell a kódpolinommal, és ha a maradék polinom 0, akkor kódszót kaptunk. Kihasználtuk, hogy a kételemű testben 1 = – 1: Tehát, ha az üzenetpolinom p(x): p(x)  x m = q(x)  g(x) + r(x) a kódpolinom: q(x)  g(x) = p(x)  x m – r(x) = p(x)  x m + r(x).

40 40 Példa: legyen továbbá az üzenet 101, és a kódpolinom p(x)p(x) p(x)  x m r(x)r(x) redundáns bitek végül a kódszó: q(x)  g(x)

41 41 Végezzük el a hibaellenőrzést is. A kódszónak megfelelő polinom Ezt a polinomot osztjuk most a kódpolinommal maradékosan: Példák a mindennapi életben gyakran használt CRC-kódpolinomra.

42 42 Hamming-kód A kódot, amely pontosan 1-hibajavító, példán keresztül mutatjuk be. F 2 felett dolgozunk, így vektoraink komponensei bitek. Legyen Készítünk egy r  n-es mátrixot az oszlopokba alulról felfelé vezető nullákkal ellátva felírjuk a számokat egytől n-ig, bináris formában. Tehát r = 3 esetén: Ez lesz a H ellenőrző mátrix, de a kódokat is ezzel generáljuk, hiszen azok a v vektorok kerülnek be a kódba, amelyekre H  v = 0.

43 43 Vegyük észre, hogy a kettő hatványokban (2 m ) pontosan 1 darab 1-es van, mégpedig az m-edik helyen. Az r  r-es egységmátrix tartalmazza a redundáns biteket, a többi soronként k darab bit lesz a „közlemény”. Könnyen ellenőrizhető, hogy a szó kódszó, mivel

44 Mi a helyzet az szóval? u nem kódszó, és a hibavektor Végezzük el a számolást: Az 111 bitsorozat tízes számrendszerben felírva 7. azaz 44 7  0  hiba van. Azt is megkaptuk, hogy a hiba a 7. helyen van a kapott szóban, tehát tudunk javítani.

45 45 A kódszavakat hogyan határozhatjuk meg? Ha a k hosszúságú üzenet b 1 …b k, akkor az n bit hosszú kódszóba először tegyük be kiszámítandó redundáns biteket a pontosan r = n – k darab 2-hatvány helyre. Ez az előző példában az 1., 2., 4. helyet jelenti. A maradék helyekre pedig beszúrjuk az üzenet k darab bitjét. Ekkor a kapott c vektor transzponáltját H-val szorozva: A Hamming-kód esetén a maximális üzenethosszak azaz


Letölteni ppt "1. 2 Az információ mérése m pozitív egészre legyen a 1, …, a m különböző üzenetek halmaza. Ha az a i üzenetet k i -szer fordul elő az adásban, akkor a."

Hasonló előadás


Google Hirdetések