Lineárne blokové kódy
Download
Report
Transcript Lineárne blokové kódy
Kanálové kódovanie
(Zabezpečovacie kódy)
Zabezpečovacie kódy
• v prenosovom reťazci – kanálový kóder
• detekcia chýb (schopnosť zistiť, že nastala chyba)
• korekcia chýb (zistiť kde nastala chyba)
• pridávanie kontrolných bitov = zvyšovanie redundancie
• najznámejšia forma zabezpečenia – paritný bit
– párna parita - počet jednotiek v slove párny
0101001| 1
• 2 základné skupiny
– blokové kódy
– konvolučné kódy
1000100| 0
Blokové kódy
• dáta sú kódované po blokoch pevnej dĺžky, označujú sa (n,k) n>k
• k – počet informačných bitov, ktoré zabezpečujeme
• n-k = r – počet kontrolných bitov
• n – kódové slovo blokového kódu
k
n-k
...
tzv. systematický bl. kód
n
• zabezpečovacie bity sú odvodené od informačných bitov podľa
definovaného algebraického vzťahu
• R = k/n – informačný (kódový) pomer, snaha je aby bol čo najväčší
• prenosová rýchlosť dát na výstupe kanálového kódera je o n/k
vyššia ako na vstupe
Blokové kódy
• Príklad: blokový kód (4,2)
prenosová rýchlosť sa
zvýši dvojnásobne!!!
• Hammingova vzdialenosť 2 slov d(vi,vj) – počet bitov v ktorých sa líšia
• Hammingova váha slova w(vi) – počet nenulových bitov slova
• min. H. vzdialenosť kódu dmin – min. vzdialenosť zo všetkých dvojíc slov
Modulo 2 aritmetika
Platí: d(vi,vj)=w(vi+vj)
1001
+1111
0110
-> w(0110)= 2 = d(vi+vj)
Blokové kódy
• ak sa zmení jeden bit, dostaneme slovo mimo kódu
• kód dokáže identifikovať všetky jednoduché chyby ...
• a niekoľko viacnásobných chýb (napr. 1100)
• nedokáže jednoznačne zistiť kde došlo k chybe
• prijaté: 1101 – vyslané: 1001 alebo 1111?
Blokové kódy
•
schopnosť kódu detekovať resp. opravovať chyby závisí od dmin
•
kód je schopný detekovať všetky t – násobné chyby ak platí:
dmin ≥ t +1
•
kód je schopný jednoznačne opraviť všetky t – násobné chyby ak platí:
dmin ≥ 2t +1
•
jednoduchá detekcia:
– prijaté slovo sa porovná so všetkými kódovými slovami (ak nie je zhoda -> chyba)
•
jednoduchá korekcia:
– ak platí ↑ podmienka a nastala t - násobná chyba, prijaté slovo sa nahradí kódovým
slovom od ktorého min. vzdialenosť
– musí byť splnená ↑ podmienka aby bolo vždy len jedno
•
Pozn.: paritný kód je blokový kód (n,n-1) s dmin=2, t.j. umožňuje odhaliť chybu v 1 bite
Lineárne blokové kódy
• vlastnosť linearity: súčet dvoch kódových slov je ďalšie kódové slovo daného kódu
• uvažujme kódové slovo daného kódu ako n-prvkový vektor (systematický kód)
• v=[a1,a2, …, ak, c1, c2…cn-k], v=[a c], a=[a1,a2, …, ak], c=[c1, c2,…, cn-k]
• kontrolné bity získame lineárnou kombináciou informačných bitov
ci=p1ia1 + p2ia2 + ... +pkiak
c=aP
i=<1,n-k>
pij=1 ak ci závisí od aj, inak pij=0
kde P je matica koeficientov rozmeru k x (n-k)
p11 ...
p1n k
P ... ...
...
pk1 ... pn k n k
pij 0,1
v=[a c] -> v = [a (a P)] = a [Ik P] kde Ik je jednotková matica rozmeru k
• G = [Ik P] je tzv. generečná matica kódu
• násobením vektora informačných bitov s generačnou maticou dostaneme kódové slovo
v=aG
Lineárne blokové kódy
• uvažujme generačnú maticu
• riadky generačnej matice
tvoria bázové vektory lineárneho
vektorového priestoru daného kódu
• každé kódové slovo je lineárnou kombináciu bázových vektorov (viď. 3. stĺpec tabuľky)
• u lineárneho kódu je dmin daná min. váhou nenulového slova (dmin=2 pre ↑)
Lineárne blokové kódy
• na detekciu chyby sa používa tzv. kontrolná matica H, pre ktorú platí:
v.HT = 0 ak v je kódové slovo daného kódu, inak ≠ 0
• v = aG -> aGHT = 0 , a je vo všeobecnosti nenulový, t.j. musí platiť
GHT = 0
• čo v prípade systematického kódu s
• platí ak je kontrolná matica v tvare
• Príklad: kód (6,3)
Lineárne blokové kódy
• korekcia chyby pomocou štandardného dekódovania
• prijaté kódove slovo: w = v + e
...
v3+ej
...
v2k+ej
vi+e2n-k-1
...
...
...
...
v2+e2n-k-1
v 2k
v2k+e1
...
...
e2n-k-1
...
...
...
v2+ej
vi
vi+e1
...
...
ej
...
...
...
...
v2
v2+e1
...
v1=0
e1
(e – chybový vektor)
v2k + e2n-k-1
• vi – kódové slová, ej – chybové vektory (obsahujú 1 na pozícii chybného bitu)
• ak je prijaté bezchybné slovo bude sa nachádzať v prvom riadku
• ak vznikla chyba slovo sa ocitne v riadku ktorý začína príslušným chybovým vektorom
• správne slovo je potom prvá slovo stĺpca v ktorom sa ocitne chybné slovo
Lineárne blokové kódy
• Príklad: majme kód (6,3) s kódovými slovami viď prvý riadok
• prvý stĺpec chybové vektory
• daný kód dokáže okrem jednoduchej chyby opraviť aj jednu dvojitú (posl. riadok)
• tabuľka má 26 = 64 prvkov
Lineárne blokové kódy
• korekcia chyby pomocou syndrómu
• prijaté slovo w = v + e
• syndróm je definovaný: s = w HT
• platí
s je rozmeru 1x r
s v eH T vH T eH T eH T
0
• syndróm závisí len od chybového vektora
• podľa porovnania so syndrómami chybových vektorov nájdeme chybný bit
e1
e2
...
en-k
s1
s2
...
sn-k
• ak s = 0 nedošlo k chybe
Lineárne blokové kódy
(Hammingove)
• špeciálny typ – tzv. Hammingove kódy, pre ktoré platí n = 2r-1 (r = n-k)
• platí to napr. pre kód (7,4) s kontrolnou maticou (nesystematický kód)
• podmienka: stĺpce matice sú všetky nenulové syndrómy dĺžky 3 bity
• pre syndrómy chybových vektorov platí:
s(1000000) = 001
s(0100000) = 010
...
s(0000001) = 111
syndróm vyjadruje v binárnom tvare
v ktorom bite nastala chyba
• systematický kód je možné získať preusporiadaním stĺpcov,
vtedy je syndróm rovný poradovému číslu stĺpca
Lineárne blokové kódy
(Hammingove)
• Hammingov kód (7,4) v nesystematickom prevedení je vyjadrený:
v=
ci – kontrolné bity, ai – informačné bity
• musí platiť v.HT=0 - vlastnosť kontrolnej matice
• teda:
v modulo2 aritmetike platí: +1 = -1
Lineárne blokové kódy
(Hammingove)
• Hammingov kód (7,4) v nesystematickom – realizácia kódera
Lineárne blokové kódy
(Hammingove)
• Hammingov kód (7,4) v nesystematickom – realizácia dekódera
Lineárne blokové kódy
(Hammingove)
• Hammingov kód je tzv. perfektný kód podľa definície:
Lineárne blokové kódy
(cyklické)
• zvláštnu skupinu lineárnych blokových kódov tvoria tzv. cyklické kódy
Lineárne blokové kódy
(cyklické)
Lineárne blokové kódy
(cyklické)
• Inými slovami cyklický kód nemôžeme zostaviť pre ľubovoľné hodnoty n a k
• v tabuľke sú uvedené všetky polynómy, ktoré delia bez zvyšku x7-1
• je zrejmé, že sa nedá zostrojiť cyklický kód (7,2), resp. (7,5)
Lineárne blokové kódy
(cyklické)
Lineárne blokové kódy
(cyklické)
Lineárne blokové kódy
(cyklické)
Dá sa dokázať, že Hammingov (7,4) kód má vlastnosti cyklického kódu
Lineárne blokové kódy
(cyklické)
Lineárne blokové kódy
(cyklické)
Lineárne blokové kódy
(cyklické)
Lineárne blokové kódy
(cyklické)
Výhoda cyklických kódov – pomerne jednoduchá realizácia pomocou posuvných registrov
Ďakujem za pozornosť
Použitý zdroj informácií:
http://user.unob.cz/biolek/vyukaVUT/skripta/DKO.pdf