Kommunikációs Rendszerek A kommunikáció Átviteli hiba XYZ-421 XKZ-4_2 Kommunikációs Rendszerek
Átviteli hibák kezelése Stratégiák Elfogadhatóság mértéke hiba detektálás + átvitel ismétlés (Automatic Repeat Request) (ARQ) Javitó kód alakalmazása (Forward Error Correction) (FEC) Fokozatok Hiba megelőzés Hibajelzés (paritás, CRC, kontroll összeg) Hibajavitás (Hamming, Reed-Solomon) Közös elem : redundancia (n,k): k adat bit, n - k redundáns bit, n kód bit Kommunikációs Rendszerek
Kommunikációs Rendszerek Hiba típusok Különálló (egyes) hiba Többes hiba Hibacsomó (burst) Kommunikációs Rendszerek
Kommunikációs Rendszerek Paritás elemes kód Kommunikációs Rendszerek
Kommunikációs Rendszerek Paritás elemes kód Egy un. „paritás bit“-et adunk az adat bitekhez A paritás bit értékével az adó oldalon az „1”-ek számát párossá (vagy páratlanná) tesszük. Vevő oldalon egy bit hiba detektálható pld. (páros paritás, 7 adat bit) küldött bitek 10100011 vett bitek 10101011 (nem páros, hiba) csak páratlan számú hiba jelzésére alkalmas Kommunikációs Rendszerek
Paritás két dimenzióban Longitudinal Redundancy Checking (LRC) Az információ blokkokba szervezve Az üzenet végén egy kiegészítő byte Jelez: Minden egyes hibát Minden kettős hibát Minden háromszoros hibát Majdnem minden négyszeres hibát Minden x-szeres hibát, páratlan x esetén 0101001 1 1101001 1 1011110 0001110 1 0110100 1 0100100 0 Block Check Character (BCC) Kommunikációs Rendszerek
Kommunikációs Rendszerek Hamming kód ..1.001.000 1001000 adat bitek: 00110010000 Hamming kód: 00111010000 vett bitek: 0.1.1.1.0.0 ctrl bit 1: páratlan .01..01..00 ctrl bit 2: páros ...1101._._ ctrl bit 3: páratlan ._._._.0000 ctrl bit 4: páros a hiba helye: 4 + 1 = 5. bit Kommunikációs Rendszerek
Kommunikációs Rendszerek Hamming kód Az ellenőrző bitek a 2i –ik pozicióban (1,2,4,8,16, …) Az adat bitek a többi pozicióban [3,5,6,7,9,….) A Hamming kód előállítása Az ellenőrző bit a bitek egy csoportjának (önmagát is beleértve) a paritását állítja be. Az adat bitek mindig több paritásképzésben vesznek részt. Pl. 5 = 1+4 Egy hibás bit javítása Képezzünk minden ellenőző bitet Összegezzük a hibás paritású pozíció számokat. Az összeg mutatja a hibás bit pozicióját (0 -> nincs hiba) Kommunikációs Rendszerek
Polinomiális hibavizsgálat Az üzenet végére valamilyen matematikai algoritmuson alapuló karaktert, vagy bit sorozatot helyezünk el. adat csoport (blokk) esetében Ellenőrző összeg Ciklikus kód (CRC) Kommunikációs Rendszerek
Ciklikus kódolás (CRC) polinom moduló 2 bináris aritmetika egy közös „r” fokú G(x) generátor polinom az adó és vevő oldalon használatosak: CRC-8 x 8 +x 2 +x+1 CRC-10 x 10 +x 9 +x 5 +x 4 +x+x CRC-12: x12 +x11 +x3 +x2 +x1+1 CRC-16: x16 +x15 +x2 +1 CRC-CCITT x 16 +x 12 +x 5 +1 osztó Kommunikációs Rendszerek
Ciklikus kódolás (CRC) Az eredeti M üzenetet egészítsük ki r 0 bittel. Ez biztosítja, hogy a kiegészített üzenet legalább r fokú lesz. A kiegészített M’ üzenetet osszuk el (mod 2) a generátorral, a maradékot (R) jegyezzük meg. Az eredeti üzenethez füzzük hozzá az így nyert (R) maradék tagot. Hajtsuk végre az átvitelt. A vett üzenetet osszuk el (mod 2) a generátorral Ha az így nyert maradék nem 0, akkor hibás volt az átvitel Kommunikációs Rendszerek
Ciklikus kódolás (CRC) Kommunikációs Rendszerek
CRC Hardware megvalósítás Az elterjedtség fő oka az egyszerű hardware Az osztó áramkör XOR kapuk és r bites shift regiszter. Visszacsatoló XOR kapuk, ahol G(x) = 1 Kommunikációs Rendszerek
Ciklikus kódolás (CRC) A CRC kód jelez minden páratlan súlyú hibát. Ha G(x) tartalmazza X+1 A CRC kód jelez minden kettős hibát ha G(x) tartalmazza 1 A kód jelez minden hibacsomót amelynek hossza < r Ez egy nagyon fontos tulajdonság, mert a fizikai valóság az, hogy a hibák hajlamosabbak csomókban előfordulni, mint szétszórtan és függetlenül. A kód hosszabb hibacsomókat is jelez 1 - 2^-r valószínűséggel Kommunikációs Rendszerek
Kommunikációs Rendszerek Reed-Solomon példa: az RS(255,223) jelű kódot gyakran hasznáják 8-bites jelekre. Minden kódszó 255 byte-ból áll, amiből 223 byte adat és 32 byte paritás. Ennek a kódnak a jellemzői: n = 255, k = 223, s = 8 2t = 32, t = 16 A dekóder 16 hibás jelet tud kijavítani, azaz a kódszó bármely helyén fellépő, maximum 16 byte hibát automatikusan javít. Kommunikációs Rendszerek
Kommunikációs Rendszerek Reed-Solomon A Reed-Solomon kódolás matematikai alapja az un. Galois mezők. A Reed-Solomon kódszavakat speciális generátor polinomokon alapuló aritmetika állitja elő. Egy Reed-Solomon kódszó 2t szindrómát tartalmaz, melyek értéke csak a hibáktól függ. A szindrómák értéke a generator polinom 2t gyökének helyettesítésével nyerhető. Ez egy t ismeretlenes egyenletrendszer megoldását jelentő feladat. Speciális gyors algoritmusok, hardver realizációk léteznek. Kommunikációs Rendszerek
Hibajavító kódok osztályai Blokk kódolás A kódoló a k-bit hosszúságú üzenet blokkból egy n-bit hosszú kódszavat generál. A blokkok közöt nincs adatkapcsolat. Általában nagyobb n és k érték esetén, főleg adatátvitelre Konvolúciós kódolás A kódoló folyamatos működésű, a beérkező üzenet jelfolyamot sorosan kezeli. Alacsonyabb bemenő és kimenő bit számú rendszerek (tipikusan k=1-3, n=2-6) Kisebb késleltetésű rendszerekben. Kommunikációs Rendszerek
Hibajavító kódok osztályai Blokk kódok Paritás Keresztparitás Hamming CRC Reed-Solomon Stb Konvolúciós kód viterbi Kommunikációs Rendszerek
Kommunikációs Rendszerek Konvolúciós kódok Feladat: a rendszer állapotának optimális becslése zajos környezetben Megfigyelés becslés Kommunikációs Rendszerek
Kommunikációs Rendszerek Konvolúciós kódoló Áramkör modell: két sorba kapcsolt tároló elem ( D-Flip-Flop) Két exclusiv OR kapu X=C+B+A Y=C+A. Minden C-re érkező bit két bitet (XY) generál. (kódolási arány ½) Kommunikációs Rendszerek
Kommunikációs Rendszerek Példa A kódoló bemenete: 0110101110 A kódoló kimenete: 00 10 11 01 11 00 11 11 10 00 Kommunikációs Rendszerek
Kommunikációs Rendszerek Konvolúciós kódoló C B A = X Y ----------- 0 0 0 = 0 0 0 0 1 = 1 1 0 1 0 = 1 0 0 1 1 = 0 1 1 0 0 = 1 1 1 0 1 = 0 0 1 1 0 = 0 1 1 1 1 = 1 0 A három bemenő változó nyolc lehetséges állapotára az áramkör igazságtáblája: Kommunikációs Rendszerek
Kommunikációs Rendszerek Konvolúciós kódoló Jelenlegi -------> Következő állapot állapot BA -C--> CBA=(XY) új BA ------------------------- 00 -0--> 000=(00) ===> 00 00 -1--> 100=(11) ===> 10 01 -0--> 001=(11) ===> 00 01 -1--> 101=(00) ===> 10 10 -0--> 010=(10) ===> 01 10 -1--> 110=(01) ===> 11 11 -0--> 011=(01) ===> 01 11 -1--> 111=(10) ===> 11 A lehetséges állapotátmenetek: Kommunikációs Rendszerek
Kommunikációs Rendszerek Állapotgráf A működés ábrázolható állapotgráf segítségével. Nem szemlélhető a folyamat Kommunikációs Rendszerek
Kommunikációs Rendszerek Trellis Diagram A folyamat időben egymást követő állapotai Trellis Diagram segítségével ábrázolhatóak. Kommunikációs Rendszerek
Kommunikációs Rendszerek Trellis Diagram a b c d Bemenő jel Kommunikációs Rendszerek
Kommunikációs Rendszerek Trellis Diagram Kommunikációs Rendszerek Note: it is assumed that you start in state 00
Kommunikációs Rendszerek Viterbi Dekódolás A Viterbi algoritmus: Adva van a vett jelek sorozata (melyet konvolucios kódoló állitott elő és egy zajos csatornán át érkezett.) meg kell állapitani, hogy mi volt a konvolucios kódoló bemenetén. ez a trellis diagramon keresztülvivő legvalószínűbb nyomvonal meghatározásával történik. Kommunikációs Rendszerek
Kommunikációs Rendszerek Viterbi Algoritmus Soft Decision Decoding Kommunikációs Rendszerek
Kommunikációs Rendszerek Decoder, Traceback Kommunikációs Rendszerek
Kommunikációs Rendszerek So What’s Convolution? Add Shift Kommunikációs Rendszerek
Kommunikációs Rendszerek
Kommunikációs Rendszerek Kommunikációs Rendszerek
Kommunikációs Rendszerek Kommunikációs Rendszerek