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

Hibajavító kódolás hangátviteli rendszerekben

Hasonló előadás


Az előadások a következő témára: "Hibajavító kódolás hangátviteli rendszerekben"— Előadás másolata:

1 Hibajavító kódolás hangátviteli rendszerekben

2 Digitális hangátvitel, hangrögzítés:
Digitális jeltovábbítás digitális csatornán! Digitális csatornamodell: Probléma:

3 Hangátviteli (rögzítési) rendszerek
bit seb. (bit/sec) csatorna jellege moduláció hibajavító kódolás rögzítés CD 1.5 M véletlen + burst hibázás P(e)=10-3 PAM + EFM ? DVD 0.2-6M PAM + EFM „szerű” HDD ~100M véletlen P(e)=10-9 átvitel AESEBU/SPDIF P(e)=10-6 GSM 9.6 k fading GMSK műsorszórás DAB 0.5 M OFDM DVB-S AWGN QAM DVB-T

4 Érzékenység a bithibára
PCM esetén nem kritikus (lehet interpolálni) Tömörített (pl. mp3, DTS, LPC) kritikus lehet (egy hiba egész blokk elromlását okozhatja)

5 Hibajelzés, javítás alapötlete:
Redundancia hozzáadásával a vételi oldalon jelentkező hibák észlelhetővé, esetleg javíthatóvá válnak Jelölések: k-bites blokkot (üzenethossz) kiegészítünk r bites (paritáshossz) ún. paritásbittel k+r=n bitet küldünk tehát át (kódszóhossz)

6 Kódolás geometriai interpretációja
Eredeti üzenet: k dimenziós vektorok (k-dimenziós térbeli vektorok) Kódolt üzenet: n>k dimenziós térbeli vektorok

7 Példa k=1 (egyetlen bitet akarunk küldeni)
n=2 (ehelyett 2 bitet küldünk, pl. 2x ugyanazt – ismétléses kód) 0,1 0,0 0,0 1 1,0 nem érvényes kódszavak

8 Kódolás alapvető korlátjai
Cél: egy kódkészleten belül az ún minimális Hamming-távolság (dmin) maximalizálása: Belátható: dmin<=n-k+1 Ideális esetben (MDS-kódok): dmin=n-k+1

9 Hibajelző, hibajavító képesség
Hibajelző képesség: Akkor tudunk hibát jelezni, ha a vételi oldalon nem legális kódszó jelenik meg. Hibajelzés akkor garantálható, ha a kódszóban a hibás pozíciók száma <= dmin-1 Hibajavítás: Akkor tudunk hibát javítani, ha egyértelműen el tudjuk dönteni, hogy a vett (hibás) szó melyik legális kódszóhoz van a legközelebb. (Ekkor valószínűségi alapon a hozzá legközelebbi legális kódszóra döntünk)

10 Kód ABC A hibajavító kódolásokban nem mindig bináris üzeneteket feltételezünk, általában M-áris üzenetekkel foglalkozunk. Következmény: a bináris kódok elsősorban a véletlen hibák, míg az M-áris ABC fölött működő kódok a csomós hibák javítására alkalmasak.

11 Matematikai háttér Véges testek (Galois-Fields) fölötti aritmetika. Fontos: nem létezik zárt test minden elemszám esetén. Prím, vagy prímhatvány méretű testek léteznek. Bináris test fölötti kódok: szorzás, összeadás = XOR nembináris testben: szorzás, összeadás FIR-szűrőkkel generálás, hibaellenőrzés: műveletek véges testek fölötti vektorokkal, mátrixokkal ciklikus kódok esetén véges testek fölötti polinomokkal lehet dolgozni (ezek FIR-szűrőkkel realizálhatók) ciklikus kódok mindig generálhatóak szisztematikusan

12 Hibajelző kódok Paritásbit (1 v. 2 dimenziós)
1 hiba jelzésére alkalmas (1D)

13 CRC (Cyclic Redundancy Check)
Bináris kód k tipikusan nagy, pl. 32Kbit, r kicsi, pl 16 v. 32 szabványosított generátorpolinom, amely használata esetén: minden max 3 súlyú hiba jelezhető minden páratlan súlyú hiba jelezhető Előny: FIR-szűrővel generálható (HW implementáció létezik) és dekódolható Hátrány: csak hibajelzésre alkalmas, arra is korlátozottan

14 Hibajavító kódok Blokk kódok: Konvolúciós kódok Turbo-kódok
Bináris Hamming-kód Reed-Solomon kód BCH-kódok Konvolúciós kódok Turbo-kódok

15 Bináris Hamming-kód 1-hibát javító ún. perfekt kód
csak adott k és n számpárosok esetén konstruálható pl. (4,7), (7,15) ciklikus is, tehát mátrixszal és polinommal is generálható. Hibajavítás: szindrómadekódolással

16 Szindrómadekódolás Egyszerű, gyors dekódolás! üzenet szindróma
generátor mátrix paritásellenőrző mátrix csatorna üzenet tipp hibavektor szindróma dekódolási táblázat Off-line számolható a generátormátrix, paritásmátrix, dekódolási táblázat Egyszerű, gyors dekódolás!

17 Reed-Solomon kódok CSAK nembináris esetben lehetséges (tipikusan GF(256) (byte) ABC esetén használatos. (Bonylultabb az öszeadás és a szorzás mávelete is) MDS tulajdonságú k, n szabadon választható k, n megválasztásával dmin és a hibajavító képesség rögtön adódik elsősorban burst-hibák javítására hatékony

18 RS-kódok dekódolása Bonyolult dekódolás!
PGZ-algoritmus (n^3 számítási igény) transzformációs kódolás esetén n^2-es algoritmus Bonyolult dekódolás!

19 BCH-kódok bináris kódok (véletlen hibák javítása)
tervezési kiindulás: hibajav. képesség + kódszóhossz (n), ezekből adódik k (nem látható előre) Dekódolás: bonyolult, hasonló RS-hez

20 Kódkombinációk Kódátfűzés (t hibajavító képességű kód m-szeres átfűzése esetén (k*m,n*m) paraméterű lesz a kód, de dmin nem változik. A burst hibajavító képesség viszont ugrásszerűen nő: egymás melletti hibák esetén m*dmin javítható . Szorzatkód: (k1*k2, n1*n2, dmin1*dmin2)

21 Kaszkád kódok Csomós és véletlenszerű hibák elleni együttes védekezés

22 Blokk- és konvolúciós kódok összehasonlítása
Blokk-kódok konvolúciós kódok optimalis kódok léteznek perfekt és MDS kódok (és konstrukciók) számítógépes optimalizálás (próbálgatás) kód ABC GF(q) GF(2) dekódolás hard hard vagy soft

23 minimális Hamming-távolság (BSC-re optimális)
Blokk-kódok konvolúciós kódok implementálható dekódolási stratégia minimális Hamming-távolság (BSC-re optimális) MLSE (Maximum likelihood sequence estimation) csatornakódolás és moduláció együttes optimalizálása nem lehetséges lehetséges

24 Konvolúciós kódoló általános felépítése

25 Alapfogalmak 1 időrésben k bemeneti bithez rendelünk n kimeneti bitet;
kódsebesség R=k/n; egyszerre m+1 időrés mintái befolyásolhatják a kimenetet; a kódoló kimenetét befolyásoló bitek száma a kényszerhossz: k(m+1) eredmény: fa kód ha a kényszerhossz véges: trellis-kód konvolúciós kód: lineáris, időinvariáns trellis-kód leírás: generátor-polinomok és generátormátrix (l. később)

26 Példa : mod 2 összegző : késleltető ui: bemenő bináris információ sorozat; k=1; (egyelőre időben végtelennek tekintjük, ellentétben a blokk-kódolással) xi: kódolt (bináris) sorozat; időrésenként 2 kimeneti bit  n=2; kódsebesség: (időegység alatt beérkező és kimenő bitek száma) R=1/2: kényszerhossz: k(m+1)=3;

27 Generátorpolinomok, generátormátrix
Generátorpolinom: a bemeneti üzenetkeret i. bitje és a kimeneti kódkeret j. bitje közötti összefüggés írja le. Esetünkben i=0 (1 bites „keret”, k=1 miatt) és j=0,1. A generátorpolinom a késleltető lánc (shift-regiszter) megcsapolási-struktúráját írja le: ahol D a késleltetés operátorát jelöli; Gyakran tömörebb írásmódot használnak, a generátorpolinomok oktális leírását: vagyis Generátormátrix: k x n-es mátrix, amely a megfelelő generátorpolinomokat tartalmazza:

28 A fa-reprezentáció Kódoljunk most az előbb bevezetett struktúrával egy u=[u1,u2,u3] 3 bitből álló üzenetet. A rendszer memóriarekeszeit kezdetben 0-val töltjük föl. Az üzenet 3 bitidejének eltelte után is kapunk azonban (0-tól eltérő) kimenő értékeket, hiszen a kódoló memóriája még T=2 ideig emlékezik a múltbeli értékekre. Ezért az üzenetet kiegészítjük 2 zérus bittel, hogy a kódoló a csupa nulla állapotba érjen vissza. 10 00 állapot u1 11 a kódolt üzenet bemenet 01 00 u4=0 10 11 00 u5=0 11 11 10 00 01 u3 11 01 10 00 u2 bemeneti „1” 00 bemeneti „0”

29 Véges automata reprezentáció
10 01 11 00 10 11 00 01 belső állapot (memória tartalma) 0 érkezett a bemenetre, a kódoló marad a 00 állapotban, a kimeneten 00 jelenik meg 00 A piros nyíl a bemeneten megjelenő „1”-es, a fehér nyíl pedig a bemeneten megjelenő „0” hatására létrejövő állapotátmenetet jelzi. A nyílon a kódolt kimenet látható.

30 Trellis reprezentáció
Az állapotautomata modellt átrajzolhatjuk úgy is, hogy az automata működésének időbeliségét is érzékeltetjük: az ábrán jobbra haladva múlik az idő, fölírjuk az aktuálisan lehetséges állapotátmeneteket, és a kódolt kimenetet. Az alábbi ábrán a fölfelé mutató (piros) nyíl a beérkező 1-es, míg a lefele mutató (fehér) nyíl a beérkező 0-ra utal. 00 01 10 11 11 00 01 10 00 01 11 10 00 10 11 00 11 00

31 Dekódolás hibamentes csatorna esetén
11 11 00 01 10 11 00 11 10 00 11 10 10 10 10 01 01 00 11 01 01 01 A Dekódolás kritériuma a Hamming-távolság (BSC-re optimális). Mivel a csatorna most nem hibázik, így biztos, hogy minden bitidőben fogunk találni olyan ágat, amelyiknek a Hamming távolsága 0 a vett jeltől. Vagyis bitről bitre dönthetünk! 11 00 00 00 00 00 00 00 00 A döntésünk pedig abból olvasható ki, hogy a kiválasztott úton merre lépkedtünk, esetünkben föl-le-föl-le-le (vagy piros-fehér-piros-fehér-fehér), ami megfelel az u=[1,0,1,0,0] üzenetvektornak (u4-t és u5-t megegyezészserűen 0-nak választottuk)

32 Hard-Dekódolás DMC esetében
Hard-dekódoláson azt értjük, hogy a dekódoláshoz a digitális csatorna(modell) kimenetén látható szimbólumokat használjuk. Esetünkben ez azt jelenti, hogy a vett vektor is bináris, hasonlóan az elküldött sorozathoz. A DMC (Discrete Memoryless Channel) modell lényege, hogy a csatorna memóriamentes, tehát a hibázás valószínűségei nem függenek a csatorna korábbi állapotától. A leggyakrabban használt ilyen csatorna a BSC, a bináris szimmetrikus csatorna, ahol a hibázás valószínűsége mindkét lehetséges típusú tévesztés esetén (01, 10) azonos p érték.

33 Maximum likelihood sequence estimation (MLSE)
Tekintsünk egy p hibavalószínűségű BSC-t!. A csatorna bemenetét jelölje: x=[x1,x2,…,xN]; A csatorna kimenetét jelölje y=[y1,y2,…,yN]; Az ML dekódolás kritériuma az, hogy adott y esetén azt a lehetséges x kódszót kell dekódolni, amelyikre legnagyobb a P(y | x) feltételes valószínűség! Esetünkben: T.f.h. p < 0.5, azaz 0 < p / (1-p) < 1. Ekkor vagyis a vett vektortól a legkisebb Hamming-távolságú kódszóra kell dönteni.

34 A Hammnig-távolságnak, mint dekódolási mértéknek óriási előnye, hogy additív, azaz egy trellis-ág távolsága a vett vektortól kiszámítható úgy, hogy az egyes élek távolságát összegezzük. Általában, ha tetszőleges DMC-t föltételezünk, akkor – bár a dekódolás mértéke nem föltétlenül a Hamming-távolság – a mérték additív tulajdonsága teljesül ha a P(y|x) feltételes valószínűség logaritmusával dolgozunk (amely monoton függvény, tehát a maximalizálás szempontjából nem befolyásolja a megoldást), hiszen

35 Tehát azon (kezdőponttól végpontig vezető) utat kell a trellisen megtalálni, amelyhez tartozó kódszó a legkisebb Hamming-távolságra van a vett jeltől. Ebből pedig az is következik, hogy nem lehetséges a szimbólumról-szimbólumra döntés, hanem minden lehetséges útra meg kell határoznunk a vett vektortól való Hamming-távolságát, s ezek közül kell kiválasztanunk a minimális távolságút. A dekódolási feladat tehát exponenciális komplexitású, hiszen a lehetséges utak száma ahol K az üzenetbitek száma, T pedig a kódoló memóriarekeszeinek száma. A gyakorlatban K>>T, annak érdekében, hogy a hasznos bitek aránya az összes átvitt bithez képest minél nagyobb legyen. Így az összes lehetséges út Hamming-távolságának a kiszámolása az exponenciális komplexitás miatt nem lehetséges. Szerencsére erre nincs is szükség, a megoldást a Vitrebi-algoritmus jelenti.

36 A Viterbi-dekódoló A Viterbi algoritmus lényege az, hogy – kihasználva a dekódolási mérték additív tulajdonságát – egy egyszerű felismerés segítségével leszűkítjük azon utak számát, amelyekhez tartozó kódszavak távolságát ki kell számolnunk a vett vektortól. A Vterbi-algoritmus segítségével tetszőleges additív tulajdonságú mérték maximalizálása végezhető el. Ezért ez az algoritmus a Hamming-távolság minimalizálására közvetlenül nem alkalmas. Egy egyszerű módosítást kell bevetni: a dekódolási mérték legyen azon pozíciók száma, amelyben a vett jel egyezik az adott ághoz tartozó kóddal. (Ez pont a Hamming-távolság „inverze”. A Hamming-távolság minimalizálása ekvivalens a most bevezetett mérték maximalizálásával.

37 A Viterbi-algoritmus 1 2 3 3? 2? Most jön a Viterbi algoritmus lényege: A T+1-dik időpillanattól egy állapotba több (esetünkben 2) úton is eljuthatunk. Azt vegyük észre, hogy az az út, amelyen kisebb mértékkel jutottunk el az adott állapotba, elfelejthető, hiszen innen bárhova továbbmenve mindig ugyanazokat a mértékeket fogjuk mindkét úthoz hozzáadni: tehát előzés kizárva. Akkor viszont kár is tovább vele foglalkozni. Ez a művelet T időrés után minden állapotban elvégezhető, ezzel nagyon nagy mértékben redukáltuk azon utak számát, amelyekre a metrika kiszámítandó. 11 01 11 00 11 10 10 1 4 10 10 10 10 10 01 01 01 00 4 6 11 01 01 01 11 11 11 11 4 5 8 A kódoló állapotát jelző dobozok fölé írjuk (pirossal) azt a mértéket, amivel az adott dobozba eljuthatunk. A vett 01 és az adott ág „okozta” 00 kimenet 1 pozícióban egyezik, tehát ezt a mértéket írjuk rá erre a dobozra. Ugyanígy járunk el a következő lépésben is. (Vegyük észre, hogy T (példánkban 2) ideig minden állapotba csak egy úton juthatunk el. 00 00 00 00 00 00 00 00 00 00 Most a végállapotból visszafejthető, hogy melyik is az az út, amelyen át a maximális 8-as mértékkel jutottunk a végpontba. Az útirányból pedig megadható a döntésünk a küldött szimbólumokra:

38 Soft-dekódolás Viterbi algoritmussal
A hard-dekódolással szemben soft-dekódoláskor nem a diszkrét csatorna kimenetén megfigyelhető szimbólumokat használjuk a döntésünk meghatározásához, hanem közvetlenül a fizikai analóg csatorna zajos kimenetét (időbeli mintavételezést követően). Továbbra is memóriamentes csatornában gondolkodunk: a csatorna kimenetét csak az aktuális bemenet és additív fehér Gauss-zaj befolyásolja: (AWGN= Additive White Gaussian Noise csatornamodell) ahol x-szel a csatornára kerülő kódolt sorozatot értettük, y pedig a vett jel, a döntési változó.

39 Ha fölírjuk a Maximum likelihood döntést N-hosszú vektorokra, akkor az derül ki, hogy a vett sorozat és az egyes kódszavak közötti euklideszi távolságot kell minimalizálni, hiszen Mivel a Viterbi algoritmus maximalizál, válasszuk ezért mértéknek az euklideszi-távolság -1-szeresét!

40 Például az 1. bitidőben a piros ág mértéke:
A dekódolás az előbbihez teljesen hasonló, csak a mértékek számítása történik másként, az euklideszi-távolságot (vektorok skalárszorzatát) használjuk mértékként. Egy adott ág mértéke: Például az 1. bitidőben a piros ág mértéke: 1.12 1.00 -0.12 11 -+ 11 -0.61 +- +- 0.12 1.73 -1.12 2.94 +- +- 10 10 10 -+ -+ -+ 0.94 -- 1.24 5.44 ++ ++ 01 01 01 ++ ++ ++ -1.73 ++ -0.94 1.06 1.62 7.90 -- -- -- -- -- 00 00 00 00 00 00

41 Pontozott konvolúciós kódok
előny hátrány egyszerű kódok (k=1) 2m belső állapot 2 elágazás csomópontonként R ≤ ½ (durva bitsebesség csökkenés) bonyolult kódok (k ≥ 2) R tetszőleges 2km belső állapot 2k elágazás csomópontonként (bonyolult dekóder)

42 Megoldás: pontozás (puncturing)
A kimeneten előállított biteknek egy részét kitöröljük. Pl. a korábbi R=1/2 példa esetében: minden 4. kimeneti bitet töröljük (minden második időrés 1. bitjét), így az alábbi R=2/3 trellishez jutunk: 11 01 11 1 11 1 10 10 10 10 10 10 10 1 01 1 01 00 11 01 01 01 01 11 11 1 1 11 1 00 00 00 00 00 00 00 00 00 00

43 Eredmény: R=2/3 > 1/2, ugyanakkor a dekóder ugyanolyan egyszerű, mint az eredeti R=1/2 kódnál (legalábbis soft-dekódolás esetén, ilyenkor ugyanis a törölt pozíciókban a vételi oldalon 0-t írunk be (az eredeti értékkészlet ±1), így az euklideszi távolságot nem befolyásolják a törölt bitek).

44 a trellis idővariáns lett: dfree lecsökkent 3-ra:
11 01 11 1 11 1 10 10 10 10 10 10 10 1 01 1 01 00 11 01 01 01 01 11 11 1 1 11 1 00 00 00 00 00 00 00 00 00 00

45 Megadható időinvariáns trellis is úgy, hogy 2-2 időrés bemeneti bitjeit bitpárként értelmezve megadjuk ezen bitpárokhoz gtartozó kimeneti birhármasokat. (HF: ezen trellis fölrajzolása)

46 Hibajavítás a GSM-ben Fő cél: érthető beszédátvitel
hangminták: fs=8 kHz, 8 bit/minta  64 kbit/s tömörítés (LPC): 20 ms blokk  260 bit  13 kbit/s pszichoakusztikus teszt eredménye: (beszédérthetőség szempontjából) bit (260-ból) nagyon fontos (class 1A) bit fontos (class 1B) bit nem igazán fontos (ha elromlik, érthető marad a beszéd) (class 2) Megoldás class 1A biteket CRC-vel látják el, ha ez hibát jelez, az egész keretet (260) eldobjuk; g(x)=x3+x+1 class 1B biteket 4 db zero bittel egészítjük ki (dekódolási célból) az egész class 1-t R=1/2, T=5 konvolúciós kóddal kódoljuk G=[1+D3+D4, 1+D+D3+D4] a class2 biteket kódolás nélkül visszük át, így összesen 456 bit a kódolt keret kódolt bitsebesség: 456 bit/20 ms  22.8 kbit/s.

47

48 DVB-T DVB-T: Terrestrial Digital Video Broadcast (földi digitális TV műsorszórás) Cél: SFN (Single Frequency Network – egyfrekvenciás hálózat, 700 MHz környékén) Hozzáférés: OFDM (Orthogonal Frequency Division Multiplex, sokvivős rendszer) Moduláció: QPSK,…,64QAM (több alkalmazási módus van definiálva) Továbbítot jelfolyam: MPEG-2 TS, minimum 8 Mbit/s Hibajavítás: kétszintű (kaszkád kód) Belső kód: R=1/2,…,7/8, T=7 kényszerhosszú (pontozott) konvolúciós kód Külső (opcionális) kód: GF(256)-fölötti rövidített Reed-Solomon(204,188) kód + több ponton kódátfűzés

49 A DVB-T hibajavító rendszere

50 DVB-S Outer Code-Reed Solomon
A (204/188) Reed Solomon Code is applied to the data. This code is capable of correcting 8 errors. It takes the 188 bytes from the MPEG Encoder and adds 16 additional bytes of overhead. On the receive side, the RS decoder can take in data coming in at app BER and convert it to BER of or better. Interleaving The data is then optionally Fornay interleaved (convolutional interleaver with depth 12)  It is delimited by occasional synch packets. On the receive side, the interleaver provides a gain of app. 3 dB. It improves the ability to correct for large number of burst errors which are missed by the inner convolutional decoder. Inner Code The data is then convolutionally coded depending on the transponder size and channel quality desired.  (By increasing the code rate, we are reducing the redundancy from the base rate.Increasing the code rate increases the information rate, increases error rate but reduces Eb/N0 requirements). The basic code rate is ½ with K=7. But this rate can be increased by puncturing the code at code rates 2/3, ¾, 5/6, and 7/8 and others. Each code rate is tried and then locked on using the synch data. On the receive side, the convolutional decoder can take in a service quality of 10-2 and improve it to an error rate of

51 Hangátviteli (rögzítési) rendszerek
bit seb. (bit/sec) csatorna jellege moduláció hibajavító kódolás rögzítés CD 1.5 M véletlen + burst hibázás P(e)=10-3 PAM + EFM RS + interleaving DVD 0.2-6M PAM + EFM „szerű” RS szorzatkód+ sector-szintű interleaving HDD ~100M véletlen P(e)=10-9 ? CRC átvitel AESEBU/SPDIF P(e)=10-6 GSM 9.6 k fading GMSK bitosztályonként változó: CRC, konvoolúciós, semmi műsorszórás DAB 0.5 M OFDM konvolúciós + DVB-S AWGN QAM kaszkád konvolúciós + RS DVB-T


Letölteni ppt "Hibajavító kódolás hangátviteli rendszerekben"

Hasonló előadás


Google Hirdetések