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

Kódelmélet Adó-Információs csatorna-Vevő A={a 1,…,a n } ábécé (véges szimbólumkészlet) Elsődleges közlés: a i1,…,a in jelsorozat AdókészülékVevőkészülék.

Hasonló előadás


Az előadások a következő témára: "Kódelmélet Adó-Információs csatorna-Vevő A={a 1,…,a n } ábécé (véges szimbólumkészlet) Elsődleges közlés: a i1,…,a in jelsorozat AdókészülékVevőkészülék."— Előadás másolata:

1 Kódelmélet Adó-Információs csatorna-Vevő A={a 1,…,a n } ábécé (véges szimbólumkészlet) Elsődleges közlés: a i1,…,a in jelsorozat AdókészülékVevőkészülék Adattovábbító csatorna

2 Adatátviteli csatorna Kapacitása (Jelkészlete): K={k 1, k 2,…k n }, általában |K|<|A| A jelkészlet átvitelének fizikai megvalósítása Adó- készülék Vevő- készülék Fizikai jelek KódolóModulátorDemodulátorDekódoló Elsődleges közlés Kódolt jelek

3 Adó+vevő=adóvevő Kódoló+dekódoló=kodek Modulátor+demodulátor=modem Def: ha a kódoló  a  A elsődleges betűhöz a K halmazból vett K a = sorozatot rendel, akkor azt betű szerinti kódolásnak nevezzük. Bináris modell: K={0,1} Adókészülék +kódoló +modulátor Vevőkészülék +dekódoló +demodulátor Adókészülék +kódoló +modulátor Kétirányú adattovábbítás

4 Def: K a = sorozat: kódszó, {K a } halmaz: kód, a az elsődleges közlésnek megfelelő kódszavak konkatenáltja pedig kódolt közlés Példa: A={a,b,c,d}, kód={00, 01, 100, 101} dac  10100100 a betű szerinti kódolása Def: H:A*  {0,1}* kódolás, az A sorozataiból a K sorozataiba vivő függvény Def: H -1 : {0,1}*  A* dekódolás, a K sorozataiból az A sorozataiba vivő függvény Feltétele: ne legyen két olyan közlés, amit H ugyanabba a kódolt közlésbe visz át, vagyis H egy-egyértelmű Példa: A={a,b,c,d}, kód={00, 01, 11, 0001} nem egy- egyértelmű, mert ab  0001, és d  0001 Def: Ha H -1 létezik, azt mondjuk: a kód felbontható

5 Mikor felbontható egy kód: Ha a kódszavak hossza egyforma  a kód felbontható Def: Egy kódot prefix kódnak nevezünk akkor, ha egyik kódszó sem valódi kezdőszelete a másiknak Tétel: a prefix kód felbontható Biz: Tfh. a K= {k 1, k 2,…, k n } kód nem felbontható. Ekkor létezik egy olyan S= sorozat, ami kétféleképpen és módon felbontható (dekódolható). Tfh. a két sorozat első különböző tagja az a ki ill. az a lj elemek, amelyekhez tehát ugyanaz a kód tartozik. A |H(a ki )|<|H(a lj )|, akkor a ki a lj valódi kezdőszelete, egyébként fordítva  ellentmondás…

6 McMillan-féle egyenlőtlenség Tétel: Ha a K={k 1,k 2,…,k n } kód felbontható  i=1 Σ n 2 -li <=1, ahol l i a k i kódszó hossza. Biz: Emeljük fel az összeget a t-ik hatványra. ( i=1 Σ n 2 -li ) t =( i1=1 Σ n 2 -li1 )*( i2=1 Σ n 2 -li2 )*…*( it=1 Σ n 2 -lit )= ( i1,i2,…,it=1 Σ n 2 –(li1+li2+…+lit) )…, ahol 1<=i j <=n és 1<=j<=t Az l i1 +l i2 +…+l it hossz-sorozat nem más, mint az {a i1,a i2,…,a it } t hosszú elsődleges közlés kódolásának hossza. Jelöljük ezt L(a i1,a i2,…,a it )-vel. …=( ai1,ai2,…,ait=1 Σ n 2 –L(ai1,ai2,…,ait) ), vagyis az összes t hosszú elsődleges közlésre összegzünk. Jelölje N(t,r) azoknak a t hosszúságú elsődleges közléseknek a számát, amelyre L(a i1,a i2,…,a it )=r (kódhossz), és legyen M a K beli kódszavak hosszának a maximuma. Ekkor t<=L(a i1,a i2,…,a it )<=M*t

7 ( ai1,ai2,…,ait Σ 2 –L(ai1,ai2,…,ait) )=( r=t Σ M*t N(t,r)*2 –r )… (áttérünk kódszó-bithossz szerinti összegzésre) Másrészt: N(t,r)<=2 r, hiszen 2 r -nél több szimbólum felbontható módon nem kódolható le r bittel. Ezért: …<=( r=t Σ M*t 2 r *2 –r )=( r=t Σ M*t 1)=( r=t Σ M*t 1)=(M- 1)*t+1 Vagyis tetszőleges t-re: ( i=1 Σ n 2 -li ) t <=(M-1)*t+1 Ha ( i=1 Σ n 2 -li )>1 lenne igaz, akkor eléggé nagy t-re a fenti egyenlőtlenség nem állhatna fenn. Tehát ( i=1 Σ n 2 -li )<=1 áll fenn.

8 Kódfa Olyan bináris fa, amely csomópontjaihoz vezető út megfelel a kódszavaknak. (pl. jobbra=0, balra=1) Prefix kód: csak a falevelekhez van kódszó rendelve Pl: A={a,b,c,d,e,f},H(A)={10,11,01,0011,0010,000} Dekódolás: a bejövő bitektől függően gyalogolunk a fán. Minden prefix kódhoz lehet kódfát létrehozni. abc de f 01

9 Optimális kódok Legyen A egy adatforrás ábécéje, amely az egyes jeleket egymástól függetlenül adja ki. Legyen a P={p 1,p 2,…p n } a kibocsátott jelek valószínűségeinek halmaza. Világos, hogy p i <1, és i=1 Σ n p i =1. Pl: magyar szövegre: p e

{ "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.hu/8/2150148/slides/slide_9.jpg", "name": "Optimális kódok Legyen A egy adatforrás ábécéje, amely az egyes jeleket egymástól függetlenül adja ki.", "description": "Legyen a P={p 1,p 2,…p n } a kibocsátott jelek valószínűségeinek halmaza. Világos, hogy p i <1, és i=1 Σ n p i =1. Pl: magyar szövegre: p e


10 Shannon-féle entrópia Tétel: Tetszőleges F forráshoz létezik optimális prefix kód L(K o ).  ???De melyik az??? Def: Az F forráshoz tartozó H(F)= i=1 Σ n p i *log(1/p i ) összeget az F forrás (Shannon-féle) entrópiájának nevezzük. Tétel: Az F forráshoz tartozó bármely felbontható K kódra L(K)>=H(F). Biz: H(F)-L(K)= i=1 Σ n p i *log(1/p i )- i=1 Σ n p i l i = i=1 Σ n p i (log(1/p i )-l i )= i=1 Σ n p i (log(1/p i )- log(2 li ))= i=1 Σ n p i (log(2 -li /p i )) ((ismert: ln(x)<=x-1  log(x)<=(x-1)/ln(2)))  H(F)-L(K)= i=1 Σ n p i (log(2 -li /p i ))<= i=1 Σ n p i /ln(2)*(2 - li /p i -1)= 1/ln(2)( i=1 Σ n 2 -li -1)<=0

11 Megjegyzés: Ha az eloszlás egyenletes (p i =1/n), akkor H(F)= i=1 Σ n 1/n*log(n)=log(n)  ilyenkor az optimális kódfa egyenletes, magassága a kód költsége=log(1/n) abcd 01

12 Egy kis filozófia Barkochba: kód: egy fogalom kitalálásához vezető kérdések száma. Mikor jók a kérdések?  egy halmaz elemeinek a kiválasztásához szükséges információmennyiség  szürke halmazokra (ha nincs előzetes információnk) költséges  egyéniséggel rendelkező halmazelemek esetén (ha van előzetes információnk) olcsóbb  ha nem készülünk fel (nem gyűjtünk előzetes infót), akkor többe kerül a kiválasztási művelet…  kódfageneráláskor az igen/nem vlszségnek közel 50-50% kell lennie.

13 Optimális kód konstrukciója (Shannon-Fanno szuboptimális) Állítsuk sorba az elemeket és a vlszségeket. A Shannon-Fanno kódfa „oldalra nyomott” lesz (rövidebb kódokat kapnak a nagyobb vlszségű elemek, hosszabbakat a kisebbek) Shannon-Fanno: A fát a gyökerénél kezdjük építeni, osszuk fel a vlszségi listát kb. 50-50% arányban (stb. rekurzíve). 0.09 0.110.120.190.2 01

14 Az optimális kód Huffman féle konstrukciója Tétel: Az F jelforráshoz (A={a 1,a 2,…,a n } ábécéhez és P={p 1 >=p 2 >= … >= p n } eloszláshoz) létezik legalább egy K= {k 1, k 2,…, k n } optimális prefix kód, hogy l 1 <=l 2 <=…<=l n-1 =l n, és az utolsó két kódszó  ill.  , alakú. Biz: legyen K o egy olyan optimális kód, amelyre az állítás nem igaz, vagyis létezik i =p j, de l i >l j. - Ha éppen p i =p j lenne, akkor a két elemet kicserélve egy másik olyan optimális kódot kapunk, amelyre eggyel kevesebb l i >l j pár létezik. - Ha viszont p i >p j lenne, akkor ez és l i -l j >0 összeszorzásával p i *(l i -l j )>p j *(l i -l j )  p i *l i +p j *l j > p j *l i + p i *l j  vagyis a helycserével alacsonyabb költségű kódot kapnánk, ami viszont ellentmond a feltételnek  ÁLLÍTÁS első fele

15 Tfh. (indirekt) l n-1 =p 2 >= … >= p n } eloszlással), és K={k 1, k 2,…,k n } optimális prefix kód. Tfh. p i = q 1 +q 2. Ekkor a K’={k 1, k 2,…,k i-1,k i+1,…,k n,k i 0,k i 1} szintén optimális prefix kód lesz A={a 1,a 2,…,a n,a n+1 } ábécével és P={p 1 >=p 2 >=p i-1 >=p i+1 …>=p n >=q 1 >=q 2 } eloszlással. Biz: HF

16 Huffmann algoritmusa vlszlista sorbaállítása DO WHILE kételeműnél hosszabb a lista két legkisebb vlsz. összevonása összevont vlsz. Beillesztése LOOP a két elem a kódfa gyökere DO WHILE van összevont elem az összevont elemnél a kódfát felhasítjuk LOOP

17 0.2, 0.2, 0.19, 0.12, 0.11, 0.09, 0.09 0.2, 0.2, 0.19, 0.18, 0.12, 0.11 0.2, 0.2, 0.23, 0.19, 0.18 0.37, 0.23, 0.2, 0.2 0.4, 0.37, 0.23 0.6, 0.4 0.09 0.110.120.19 0.2 01 HF: kiszámolni, hogy tényleg olcsóbb-e a Huffmann fa, mint a Shannon-Fanno.

18 Zajos csatorna. Hibajavító kódolás Fix méretű kódszavakat (blokkokat), felbontható (prefix) kódokat vizsgálunk.  a közlés mérete többszöröse a kódméretnek. Def: A csatorna legfeljebb t egyedi hibát okoz, ha a egy blokkban max ennyi hibás bit fordulhat elő. Pl: ha a legfeljebb 1 hiba fordulhat elő, akkor a kódolásban megduplázhatjuk a biteket  hibafelismerő kódolás. Ha megtriplázzuk  hibajavító kódolás… Def: Legyen K={k 1, k 2,…,k m } n blokkméretű kód. A log(m)/n arányt a kód sűrűségének nevezzük. Def: Az  és  n szélességű bitvektorok Hamming- távolságán  és  egymástól eltérő bitjeinek a számát értjük. Jelölése  ( ,  ). Példa:  ( ,  )=2

19 A Hamming távolság tulajdonságai 1.  ( ,  )>=0 2.  ( ,  )=0   =  3.  ( ,  )=  ( ,  ) 4.  ( ,  )<=  ( ,  )+  ( ,  ) Biz: Jelölje P( ,  ) azoknak a pozícióknak a halmazát, amelyekben  és  egymástól eltérnek. Ekkor P( ,  )=P( ,  ) U P( ,  )  ÁLLÍTÁS Az 1-4. Tulajdonságokat metrikának nevezzük. A Hamming távolság tehát metrika a bináris számok felett. Háromszög egyenlőtlenség

20 Def: Kódtávolságnak nevezzük és d(K)-val jelöljük egy K kód-beli szavak távolságának a minimumát. Példa: hibafelfedés nélkül: 1, hibafelfedéssel (dupla): 2, hibajavítással (tripla): 3. Tétel: Egy K kód akkor alkalmas t db. hiba felismerésére  ha d(K)>=t+1 Biz:  tfh. az  K kódszóban legfeljebb t db hiba keletkezik, és így a  szót kapjuk.  ( ,  ) t   Vagyis a hiba úgy ismerhető fel, hogy a beolvasott szó nem eleme a K kódnak.  Indirekt: Ha d(K)<=t, akkor létezhet  ( ,  )<=t. Ilyenkor viszont, ha a csatorna legfeljebb t hibát okoz, nem dönthető el, hogy  vételekor tényleg  -t adtak le, vagy  -ból változott azzá.

21 Példa: Álljon a B kód az n hosszú, páros számú 1-t tartalmazó kódokból. d(B)=2  1 hiba felfedésére alkalmas. Elnevezés: paritásellenőrző kód. Def: Jelölje S t (  ) azon  szavak halmazát, amelyekre  ( ,  )<=t. Ezt nevezzük  középpontú, t sugarú gömbnek. Ha S t (  )  S t (  )<>    ( ,  )<=2t. Tétel: a K kóddal akkor lehet hibát javítani,  ha d(K)>=2t+1. Biz:  Rajzoljunk a kódszavak köré t sugarú gömböt. Ezek nem metszhetik egymást. Legyen  egy olyan kódszó, amely  -ból legfeljebb t változtatással keletkezett. G mindenképpen beleesik egy S t (  ) gömbbe, és a diszjunktság miatt csak egybe eshet. A feladat tehát meghatározni a gömb középpontját.  Indirekt: tfh. d(K)<=2t. Ekkor van olyan S t (  ) és S t (  ), amelyek nem diszjunktak, legyen a közös pont . Ennek vétele esetén nem dönthető el, hogy a küldött szó a vagy b volt, vagyis nem tudjuk kijavítani a hibát.

22 Lineáris kódok Legyenek  {a 1,a 2,…,a n } és  {b 1,b 2,…,b n } bináris n- esek. Def: Az  és  vektorok összege alatt a  +  ={a 1 +b 1, a 2 +b 2,…,a n +b n } vektort értjük. Def: Az  és  vektorok skaláris szorzata alatt a a 1  b 1 +a 2  b 2 +…+a n  b n szorzatösszeget értjük. (az összeg mod 2 értendő) Def: Ha q bináris konstans (0 vagy 1), akkor az  vektor q-val vett szorzata alatt a q  {qa 1,qa 2,…,qa n } vektort értjük. (1*a=a, 0*a=0). Def: az  vektor w(  ) súlya alatt az  vektorban levő nem nulla elemek számát értjük. Példa: w({1,0,0,1,1})=3, w({0,0,1,0,1})=2

23 Látható, hogy a Hamming távolságra:  ( ,  )= w(  ) Def: Egy K kódot akkor nevezünk lineárisnak, ha   K esetén   K is teljesül. Köv: A 0 kódszó minden lineáris kódnak eleme. Biz: az  0-t ad ki. Def: Egy K kód w(K) súlya alatt a nem nulla kódszavainak a minimumát értjük. Tétel: Lineáris kódokra d(K)=w(K). Biz: Legyen  és  olyan kódszavak, amelyekre d(K)=  ( ,  )=w(  )>=w(K) Másrészt, legyen   K olyan kódszó, amelyre w(K)=w(  ). Ekkor: w(K)=w(  )=w(  +0)=  ( , 0 )>=d(K)

24 Egy kis lineáris algebra A lineáris kódok nem mások, mint a B n n dimenziós vektortér alterei a kételemű (0,1 Boolean) test felett, ahol az összeadás mod 2 érvényes, és a skalárszorzás a konjunkciónak felel meg. Ha K n hosszúságú lineáris kód, akkor létezik k<=n szám, és léteznek  1,  2,…,  k vektorok, hogy tetszőleges K-beli  kódszó felírható, mint az  i vektorok lineáris kombinációja, vagyis  =  1  1 +  2  2 +… +  k  k.  i -k helyett másik  i vektorrendszert választva a k szám nem változik. Biz: nélkül

25 Az ilyen tulajdonságú  i -k a K kód egy bázisát alkotják, k-t pedig a K kód dimenziójának nevezzük. Az ily módon kapott  i –k egyértelműek Az  i –k egymástól függetlenek, vagyis egyik sem írható fel a többi lineáris kombinációjaként. Ilyenkor |K|=2 k. A K kód sűrűsége=k/n A K kód egy bázisát alkotó  i vektorokból képzett G=(  1 /  2 /…/  k ) mátrixot a K kód generátormátrixának nevezzük. Tehát a K kód tetszőleges szava megkapható a generátormátrix alkalmas kombinációjaként.

26 Ha két vektor skaláris szorzata=0, akkor azt mondjuk, hogy merőlegesek (ortogonálisak) egymásra. Tétel: Legyen K egy m dimenziós, de n elemű lineáris kód. Ekkor léteznek olyan (  1,  2,…,  n-m ) egymástól független vektorok, hogy egy   B n pontosan akkor   K is, ha (  i )=0 a fenti vektorokra. Vagyis: K az n-dimenziós B n tér egy altere (síkja). Ilyenkor a síknak léteznek normálisvektorai, amelyek elemei a B n térnek, de nem elemei a K kódnak (mert merőlegesek rá).

27 Jelöljük K  -sel (K-duálissal) a (  1,  2,…,  n-m ) bázis által kifeszített kódot. K  dimenziója n-m K  független a (  1,  2,…,  n-m ) bázis konkrét megválasztásától Ha  i =(b i1,b i2,…, b in ), akkor a belőle felépíthető H=(  1 /  2 /…/  n-m )=((b i1,b i2,…,b in )/…/(b n-m1,b n-m2, …,b n-m n )) mátrix a K  kód generátormátrixa. Ezt (a duális kód generátormátrixát) a K kód ellenőrző mátrixának is hívjuk. Azért ellenőrző, mert ilyenkor egy   K  ha H*    ((b i1,b i2,…,b in )/…/(b n-m1,b n-m2,…,b n-m n )) *(a 1 /a 2 /…/b n )=(0/…/0)

28 H*      b 11 /b 21 /…/b n-m 1  …  n  b 12 /b 22 /…/b n-m 2  =(0  /…/0) Vagyis, ha az   K  <>0 kódszó súlya t, akkor a H mátrixban van t összefüggő oszlopvektor, és fordítva: ha van a H mátrixban t összefüggő oszlopvektor, akkor van t súlyú kódszó (ennek elemei: a kiválasztott pozíciókon 1, máshol 0). Ha ennél többet választunk ki, akkor azok már bizonyosan összefüggők lesznek. Vagyis: d(K)>t  ha a K kód ellenőrző mátrixából tetszőlegesen kiválasztva t oszlopot, ezek lineárisan függetlenek.

29 Hamming kódok Tétel: egy K lineáris kóddal pontosan akkor lehet t hibát kijavítani, ha a K ellenőrző mátrixában tetszőlegesen kiválasztva 2t oszlopot, ezek lineárisan függetlenek lesznek. Legyen a K kód blokkmérete n=2 l - 1. Álljon a K kód ellenőrző mátrixa az összes l hosszú, <>0 vektorból. Ilyenkor semelyik 2 oszlop nem lineárisan összefüggő, vagyis a kódtávolság d(K)>2, vagyis legalább 1 hibát javítani tudunk. Az ilyen kódokat Hamming kódoknak nevezzük. A Hamming kód dimenziója: n-l= 2 l -l- 1. A Hamming kód sűrűsége: (2 l -l- 1 )/=2 l =1-(l+1)/2 l  1-log(n)/n Ez lényegesen jobb, mint a korábbi példa

30 Példa: Legyen l=3, a blokkméret=2 3 - 1 =7 Az ellenőrző mátrix: H=(0/0/1,0/1/0,0/1/1,1/0/0,1/0/1,1/1/0,1/1/1) Kódtávolság: 2 oszlop mindig független 3 nem mindig, hiszen 0/0/1+0/1/0=0/1/1.  a legkisebb súlyú kódszó a legkevesebb számú összefüggő oszlopvektor  d(K)=3.  1 hibát javíthatunk vele. Dimenzió: n-l, az össz dimenzió-a duális kód dimenziója (=ellenőrző mátrix sorainak száma), =7-3=4 Kódsűrűség: log(|K|)/n=log(2 n-l )/n=(n-l)/n= (2 l -1-l)/(2 l -1)=(2 3 -3-1)/(2 3 -1)=4/7

31 Tfh   K, vagyis H*   =0. Változtassuk most meg az  kódszó egy bitjét. Tfh az eredmény  =  + , ahol  egyetlen 1 bitet tartalmaz a változtatás helyén. Ellenőrizzük, hogy  benne van- e K-ban? H*   =H*(  +  )  =H*   +H*   =H*   Ez utóbbi nem más, mint a H mátrix annyiadik oszlopa, mint ahol a változás történt. Pl. legyen  =(0,0,0,1,1,1,1),  =(0,0,0,1,0,0,0). H*   =H*(0/0/0/1/1/1/1)+H*(0/0/0/1/0/0/0)=(0/0/0) +(1/0/0)=(1/0/0) Vagyis: ha a beolvasott kódszót megszorozzuk az ellenőrző mátrixxal, az eredmény közvetlenül megadja a hibás bit sorszámát

32 Példa: legyen K egy l=4 dimenziójú Hamming kód: Adjuk meg a kód következő jellemzőit: kódszóhossz, ellenőrző mátrix, kódtávolság, hibajavító képesség, dimenzió, kódsűrűség


Letölteni ppt "Kódelmélet Adó-Információs csatorna-Vevő A={a 1,…,a n } ábécé (véges szimbólumkészlet) Elsődleges közlés: a i1,…,a in jelsorozat AdókészülékVevőkészülék."

Hasonló előadás


Google Hirdetések