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

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

Upload: echo-hunter

Post on 03-Jan-2016

29 views

Category:

Documents


1 download

DESCRIPTION

Hibajavító kódolás hangátviteli rendszerekben. Digitális hangátvitel, hangrögzítés:. Digitális jeltovábbítás digitális csatornán! Digitális csatornamodell:. Probléma:. Hangátviteli (rögzítési) rendszerek. Érzékenység a bithibára. PCM esetén nem kritikus (lehet interpolálni) - PowerPoint PPT Presentation

TRANSCRIPT

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

Hibajavító kódoláshangátviteli rendszerekben

Page 2: Hibajavító kódolás hangátviteli rendszerekben

Digitális hangátvitel, hangrögzítés:

Digitális jeltovábbítás digitális csatornán!

Digitális csatornamodell:

0ˆ kk yyP

Page 3: Hibajavító kódolás hangátviteli rendszerekben

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 véletlen + burst hibázás

P(e)=10-3

PAM + EFM „szerű”

?

HDD ~100M véletlen

P(e)=10-9

? ?

átvitel AESEBU/SPDIF 1.5 M véletlen

P(e)=10-6

?

GSM 9.6 k fading GMSK ?

műsorszórás DAB 0.5 M fading OFDM ?

DVB-S 0.5 M AWGN QAM ?

DVB-T 0.5 M fading OFDM ?

Page 4: Hibajavító kódolás hangátviteli rendszerekben

É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)

Page 5: Hibajavító kódolás hangátviteli rendszerekben

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ásbittelk+r=n bitet küldünk tehát át (kódszóhossz)

Page 6: Hibajavító kódolás hangátviteli rendszerekben

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

Page 7: Hibajavító kódolás hangátviteli rendszerekben

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 10,0

1,0

0,00,1

nem érvényes kódszavak

Page 8: Hibajavító kódolás hangátviteli rendszerekben

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

Page 9: Hibajavító kódolás hangátviteli rendszerekben

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)

Page 10: Hibajavító kódolás hangátviteli rendszerekben

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.

Page 11: Hibajavító kódolás hangátviteli rendszerekben

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

Page 12: Hibajavító kódolás hangátviteli rendszerekben

Hibajelző kódok

1. Paritásbit (1 v. 2 dimenziós)• 1 hiba jelzésére alkalmas (1D)

Page 13: Hibajavító kódolás hangátviteli rendszerekben

1. 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

Page 14: Hibajavító kódolás hangátviteli rendszerekben

Hibajavító kódok

• Blokk kódok:– Bináris Hamming-kód– Reed-Solomon kód– BCH-kódok

• Konvolúciós kódok

• Turbo-kódok

Page 15: Hibajavító kódolás hangátviteli rendszerekben

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

Page 16: Hibajavító kódolás hangátviteli rendszerekben

Szindrómadekódolás

generátor

mátrix

üzenet

csatornaparitásellenő

rző mátrix

hibavektor szindróma dekódolási

táblázat

szindróma

üzenet tipp

Off-line számolható a generátormátrix, paritásmátrix, dekódolási táblázat

Page 17: Hibajavító kódolás hangátviteli rendszerekben

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

Page 18: Hibajavító kódolás hangátviteli rendszerekben

RS-kódok dekódolása

• PGZ-algoritmus (n^3 számítási igény)

• transzformációs kódolás esetén n^2-es algoritmus

Page 19: Hibajavító kódolás hangátviteli rendszerekben

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

Page 20: Hibajavító kódolás hangátviteli rendszerekben

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)

Page 21: Hibajavító kódolás hangátviteli rendszerekben

Kaszkád kódok

• Csomós és véletlenszerű hibák elleni együttes védekezés

Page 22: Hibajavító kódolás hangátviteli rendszerekben

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

Page 23: Hibajavító kódolás hangátviteli rendszerekben

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

Page 24: Hibajavító kódolás hangátviteli rendszerekben

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

uo[ ]i uo[ 1]i- uo[ ]i-m

uk-1[ ]i uk-1[ 1]i- uk-1[ ]i-m

co[ ]i

c1[ ]i

cn-1[ ]i

Page 25: Hibajavító kódolás hangátviteli rendszerekben

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)

Page 26: Hibajavító kódolás hangátviteli rendszerekben

Példa

• 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;

iu

]1[ iuo ]2[ iuo

][ixo

][1 ix

io uiu ][

: mod 2 összegző

: késleltető

Page 27: Hibajavító kódolás hangátviteli rendszerekben

Generátorpolinomok, generátormátrix

7

5

01

00

g

g

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:

201

200

1)(

1)(

DDDg

DDg

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:

]1;1[)]();([ 220100 DDDDgDg G

Page 28: Hibajavító kódolás hangátviteli rendszerekben

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.

00

10

00

állapot

u1

11

a kódolt üzenet

bemenet

00

11

01

10

00

u2

10

01

11

00

11

10

00

11

01

10

00

01

u3

01

10

00

11

10

01

11

00

01

01

00

01

00

01

00

00

u4=0

10

11

01

00

10

11

01

00

00

00

00

00

00

00

00

00

u5=0

11

00

11

00

11

00

11

00

bemeneti „1”

bemeneti „0”

Page 29: Hibajavító kódolás hangátviteli rendszerekben

Véges automata reprezentáció

10

11

00

01

belső állapot (memória tartalma)

00

1010

01

11

00

01

11

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ó.

0 érkezett a bemenetre, a kódoló

marad a 00 állapotban, a

kimeneten 00 jelenik meg

Page 30: Hibajavító kódolás hangátviteli rendszerekben

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 00

10

00

11

1u00

01

10

11

00

11

01

10

2u

11

00

01

10

11

00

11

00

01

10

10

01

3u00

01

00

11

10

01

04 u00

00

11

05 u

Page 31: Hibajavító kódolás hangátviteli rendszerekben

Dekódolás hibamentes csatorna esetén

00 00

10

00

11

11[y00

01

10

11

01

00

11

10

0100

01

10

11

00

11

00

11

01

10

10

01

0000

01

00

11

10

01

0100

00

11

]11

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!

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)

Page 32: Hibajavító kódolás hangátviteli rendszerekben

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 (01, 10) azonos p érték.

Page 33: Hibajavító kódolás hangátviteli rendszerekben

Maximum likelihood sequence estimation (MLSE)

)(

)()(

1)1()1()|(

yx,

yx,yx,xyd

NddN

pp

pppP

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

),(min)|(max ii dPii

xyxyxx

vagyis a vett vektortól a legkisebb Hamming-távolságú kódszóra kell dönteni.

Page 34: Hibajavító kódolás hangátviteli rendszerekben

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

N

jjj xyPP

1

)|(log)|(log xy

Page 35: Hibajavító kódolás hangátviteli rendszerekben

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

TKO 2

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.

Page 36: Hibajavító kódolás hangátviteli rendszerekben

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.

Page 37: Hibajavító kódolás hangátviteli rendszerekben

A Viterbi-algoritmus

00 00

10

00

11

01[y00

01

10

11

01

00

11

10

0100

01

10

11

00

11

00

11

01

10

10

01

0100

01

00

11

10

01

0100

00

11

]11

1

1

1

2

3

2

3? 2?

4

4

4

6

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.

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ó.

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:

]101[ˆ u

Page 38: Hibajavító kódolás hangátviteli rendszerekben

Soft-dekódolás Viterbi algoritmussal

iii xy

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ó.

),0(

1,12 N

x

i

i

Page 39: Hibajavító kódolás hangátviteli rendszerekben

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!

N

j ijj

N

j ijj

N

j

ijji

xy

xy

xyP

i

i

ii

1

2

21

2

12

2

min

2exp

2

1max

2exp

2

1max|max

x

x

xxxy

Page 40: Hibajavító kódolás hangátviteli rendszerekben

00 00

10

--

++

00

01

10

11

-+

--

++

+-

00

01

10

11

--

++

--

++

-+

+-

+-

-+

00

01

--

++

+-

-+

00--

++

1.73

-1.73

1.12

-1.12

0.94

-0.94

1.00

2.94

1.24

1.06

5.44

1.62 7.90

1.4162] 1.0478, 0.9704, 1.5334,- 1.0570,- 0.9318,- 0.0916,- , 0.7058- , 0.6371 1.0934,[y

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: T

iiii ccyy ],[],[ 11 Például az 1. bitidőben a piros ág mértéke:

7305.16371.010934.11

-0.61

-0.12

0.12]101[ˆ u

Page 41: Hibajavító kódolás hangátviteli rendszerekben

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)

Page 42: Hibajavító kódolás hangátviteli rendszerekben

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:

00 00

10

00

11

00

01

10

11

1

0

1

0

00

01

10

11

00

11

00

11

01

10

10

01

00

01

00

11

10

01

000

1

00

01

10

11

0

1

0

1

1

0

0

1

Page 43: Hibajavító kódolás hangátviteli rendszerekben

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).

Page 44: Hibajavító kódolás hangátviteli rendszerekben

• a trellis idővariáns lett:

• dfree lecsökkent 3-ra:

00 00

10

00

11

00

01

10

11

1

0

1

0

00

01

10

11

00

11

00

11

01

10

10

01

00

01

00

11

10

01

000

1

00

01

10

11

0

1

0

1

1

0

0

1

Page 45: Hibajavító kódolás hangátviteli rendszerekben

• 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)

Page 46: Hibajavító kódolás hangátviteli rendszerekben

Hibajavítás a GSM-benFő 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) 50 bit (260-ból) nagyon fontos (class 1A) 132 bit fontos (class 1B) 78 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.

Page 47: Hibajavító kódolás hangátviteli rendszerekben

class 1A (50 bit)

class 1B (132 bit)

class 2(78 bit)

= 260 bites keret

class 1A (50 bit)

CRC(3 bit)

zero(4 bit)

class 1B (132 bit)

class 2(78 bit)

R=1/2 konvolúciós kóder

class 1 (KÓDOLT)(378 bit)

class 2(78 bit)

= 456 bit

Page 48: Hibajavító kódolás hangátviteli rendszerekben

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

Page 49: Hibajavító kódolás hangátviteli rendszerekben

A DVB-T hibajavító rendszere

MPEG-2 TS R=1/2,...,7/8 T=7 (pontozott) konvolúciós kóder

byte-szintű kódátfűzés

RS(204,188)kóder

DEMUX

b 0

pl. n=2 QPSKn=5 64QAM

bit-szintű kódátfűzés

bit-szintű kódátfűzésb n

(modulációs) szimbólum-szintű

kódátfűzés

OFDM modulátor

Page 50: Hibajavító kódolás hangátviteli rendszerekben

DVB-S

Outer Code-Reed SolomonA (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. 10-4 BER and convert it to BER of 10-10 or better. InterleavingThe 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 CodeThe 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 10-4..

Page 51: Hibajavító kódolás hangátviteli rendszerekben

Hangátviteli (rögzítési) rendszerekbit 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 véletlen + burst hibázás

P(e)=10-3

PAM + EFM „szerű”

RS szorzatkód+ sector-szintű interleaving

HDD ~100M véletlen

P(e)=10-9

? CRC

átvitel AESEBU/SPDIF 1.5 M véletlen

P(e)=10-6

CRC

GSM 9.6 k fading GMSK bitosztályonként változó: CRC, konvoolúciós, semmi

műsorszórás DAB 0.5 M fading OFDM konvolúciós +

DVB-S 0.5 M AWGN QAM kaszkád konvolúciós + RS

DVB-T 0.5 M fading OFDM kaszkád konvolúciós + RS