You are on page 1of 19

SVEUILITE JOSIPA JURJA STROSSMAYERA U OSIJEKU

ELEKTROTEHNIKI FAKULTET OSIJEK

Vedran Glava

LDPC kodovi

SEMINARSKI RAD

Osijek, 2015.
SADRAJ

1. UVOD........................................................................................................... 1

2. LDPC KODOVI.............................................................................................. 2

2.1. SVOJSTVA KONTROLNE MATRICE H..........................................................2

2.2. TANNER-OV GRAF................................................................................... 3

3. KODIRANJE.................................................................................................. 5

3.1. LINEARNO VREMENSKO KODIRANJE........................................................7

4. DEKODIRANJE........................................................................................... 10

4.1. BINARNI KANAL S BRISANJEM...............................................................10

4.2. DEKODIRANJE PROSLJEIVANJEM PORUKE NA BEC KANALU..................11

5. ZAKLJUAK............................................................................................... 15
1. UVOD

Cilj seminarskog rada je poblie objasniti LDPC kodove i neke naine kodiranja i
dekodiranja LDPC kodova.

Seminarski rad sastoji se od etiri poglavlja od kojih je prvo poglavlje uvodno


poglavlje.

U drugom su poglavlju definirani pojmovi kontrolna matrica i Tanner-ov graf, koji se


koriste pri konstrukciji i dekodiranju LDPC kodova.

U treem je poglavlju opisan jedan od naina kodiranja LDPC kodova tzv. linearno
vremensko kodiranje u kojem se za stvaranje kodne rijei koristi kontrolna matrica opisana
u drugom poglavlju.

U etvrtom je poglavlju objanjen pojam binarnog kanala s brisanjem. Takoer,


pojanjen je algoritam za dekodiranje LDPC kodova koji koristi Tanner-ov graf opisan u
drugom poglavlju.

U zadnjem, petom, poglavlju napisan je osvrt na rad.

3
2. LDPC KODOVI

LDPC kodove je 1963. razvio ameriki inenjer Robert G. Gallager. Meutim, LDPC
kodovi nisu se koristili sljedeih 30 godina. Ponovno su ih otkrili D. MacKay i M. Neal
1996. dokazavi da LDPC kodovi postiu performanse turbo kodova uz znatno nie
trokove implementacije to je pokrenulo njihovu iroku primjenu u digitalnoj
komunikaciji [1].

LDPC kodovi pripadaju skupini linearnih blok kodova s rijetkim paritetnim bitovima u
kontrolnoj matrici H [2]. Matrica H jo se naziva i matrica pariteta s niskom gustoom
(low density parity matrix).

2.1. SVOJSTVA KONTROLNE MATRICE H

Kontrolna matrica H predstavlja jedan od dva naina na koje moemo prezentirati sve
linearne blok kodove, pa tako i LDPC kodove.

Svaki se redak kontrolne matrice H sastoji od jedinica, a svaki stupac od jedinica.


Dva stupca kontrolne matrice H mogu imati =0 ili =1 zajednikih jedinica. Varijabla
jo se naziva i teina redka, dok se varijabla naziva teina stupca. Ukoliko svi stupci ili
redci kontrolne matrice H imaju jednaku teinu, tada je LDPC kod regularan. U
suprotnom, ako svi stupci ili redci nemaju jednaku teinu, tada je LDPC kod neregularan.
Neregularni LDPC kodovi daju bolje performanse od regularnih LDPC kodova. Gustoa
kontrolne matrice rauna se prema jednadbi [3]:


r (2.1)
J

gdje je:

- r = gustoa kontrolne matrice H


- = ukupan broj jedinica u stupcima matrice H
- J = broj redaka matrice H

4
Slika 2.1 Primjer kontrolne matrice H

Da bi se linearni kod smatrao LDPC kodom, teina redka i teina stupca


moraju biti puno manji od dimenzije matrice H. Ako je ovaj uvjet zadovoljen, za matricu H
kaemo da ima svojstvo rasprenosti. Minimalna distanca poveava se s rasprenou
matrice H, ime kodiranje postaje sigurnije i uinkovitije [3].

2.2. TANNER-OV GRAF

Nazvan prema Michaelu Tanneru, graf predstavlja drugi nain na koji moemo
prezentirati LDPC kodove. Slui za konstrukciju dugakih kodova pomou kraih kodova.

Slika 2.2 Primjer Tanner-ovog grafa

Za linearni blok-kod duine n, odreen kontrolnom matricom H, koja se sastoji od J


redaka, moemo sastaviti graf koji se sastoji od dva seta vrhova, V1 i V2. Prvi set, V1,
sastoji se od n vrhova koji predstavljaju bitove koda, a oznaavaju se s v 0, ..., vn-1 i nazivaju
se varijabilni vorovi ili bit vorovi. Drugi set, V2, sastoji se od J vrhova i predstavlja J
kontrolnih suma pariteta. Oznaavaju se sa c1, ..., cJ i nazivaju se kontrolni vorovi. Bilo
koja dva vrha iz seta V1 ne mogu biti meusobno spojeni i bilo koja dva vrha iz seta V 2 ne
mogu biti meusobno spojeni. Stupanj odreenog vrha v i jednak je broju kontrolnih suma

5
pariteta koje u svojoj jednadbi sadre vrh v i. Stupanj vrha cj jednak je broju kodnih bitova
koji ulaze u vrh cj.

U regularnom LDPC kodu stupnjevi svih vrhova v i u Tanner-ovom grafu jednaki su


teini stupaca matrice H i stupnjevi svih vrhova cj jednaki su teini redaka kontrolne
matrice H [3].

Za Tanner-ov graf na slici 2.2 mogu se napisati sljedee jednadbe:

c 1v 1 v 2 v 4 v 6 0 (2.2)

c 2v 2 v3 v 5v 70 (2.3)

c 3v 1 v 2v 3 v 4 v 60 (2.4)

c 4 v 5v 6 v 7 0 (2.5)

6
3. KODIRANJE

Kodiranje informacije vrimo kako bismo informaciju zatitili od utjecaja smetnji na


prijenosnom kanalu.

Recimo da elimo kodirati LDPC kod duine 10 i kodne brzine 1/2. Kontrolna matrica
koda zadana je kao:

1 1 0 1 1 0 0 1 0 0
0 1 1 0 1 1 1 0 0 0
H0 0 0 1 0 0 0 1 1 1 (3.1)
1 1 0 0 0 1 1 0 1 0
0 0 1 0 0 1 0 1 0 1

Prvo to je potrebno napraviti jest presloiti matricu H u oblik H r tako da se u bilo koja
dva uzastopna redka, koji se ne sastoje veinom od nula, jedinica u donjem redku nalazi
desno od jedinice u gornjem redku. To postiemo primjenom elementarnih operacija nad
GF(2) poljem, a to su: zamjena dva redka ili zbrajanje dva redka po modulo 2 aritmetici
[4].

Prvi i drugi stupac matrice H u jednadbi (3.1) imaju jedinice na dijagonali, a jedinice
ispod dijagonale eliminiraju se tako da etvrti redak zamjenimo sumom prvog i etvrtog
redka po modulo 2 aritmetici. Trei redak matrice ne sadri jedinicu na dijagonali, te je
potrebno zamjeniti trei i peti redak. U zadnjem koraku potrebno je zamjeniti peti redak
sumom petog i etvrtog redka po modulo 2 aritmetici [4]. Dobivena matrica H ima oblik:

1 1 0 1 1 0 0 1 0 0
0 1 1 0 1 1 1 0 0 0
H r0 0 1 0 0 1 0 1 0 1 (3.2)
0 0 0 1 1 1 1 1 1 0
0 0 0 0 1 1 1 0 0 1

Sada je potrebno dobivenu matricu Hr pretvoriti u oblik Hrr tako da bilo koji stupac koji
sadri vodeu jedinicu ima nule na ostalim mjestima. Prvi stupac zadovoljava postavljeni
uvjet. U drugom stupcu lan iznad dijagonale ukloniti emo zamjenom prvog redka sa
sumom prvog i drugog redka po modulo 2 aritmetici. Na slian nain, lan iznad
dijagonale u treem stupcu uklniti emo zamjenom drugog redka sa sumom drugog i treeg
redka po modulo 2 aritmetici. Rjeavanje etvrtog stupca provodimo na slian nain.

7
Potrebno je zamjeniti prvi redak sa sumom prvog i etvrtog redka po modulo 2 aritmetici.
Na kraju, na slian nain, rjeavamo peti stupac. Peti redak pribrajamo prvom, drugom i
etvrtom redku ime dobivamo eljenu matricu Hrr [4].

Matrica Hrr sada ima oblik:

1 0 0 0 0 0 1 1 1 0
0 1 0 0 0 1 0 1 0 0
H rr 0 0 1 0 0 1 0 1 0 1 (3.3)
0 0 0 1 0 0 0 1 1 1
0 0 0 0 1 1 1 0 0 1

U zadnjem koraku, permutacijom stupaca, kontrolnu matricu prebacujemo u standardni


oblik:

0 1 1 1 0 1 0 0 0 0
1 0 1 0 0 0 1 0 0 0
H std 1 0 1 0 1 0 0 1 0 0 (3.4)
0 0 1 1 1 0 0 0 1 0
1 1 0 0 1 0 0 0 0 1

Generatorska matrica G za zadanu kontrolnu matricu Hstd ima oblik:

1 0 0 0 0 0 1 1 0 1
0 1 0 0 0 1 0 0 0 1
G0 0 1 0 0 1 1 1 1 0 (3.5)
0 0 0 1 0 1 0 0 1 0
0 0 0 0 1 0 0 1 1 1

Mana ovakvog pristupa kodiranja jest vrlo visok stupanj kompleksnosti kodera. Za
razliku od matrice H, generatorska matrica G vrlo vjerojatno nee bit rasprena te e stoga
umnoak

cuG (3.6)

gdje je:

- c = kodirana rije (izlaz iz kodera)


- G = generatorska matrica
- u = informacija (ulaz u koder)

rezultirati velikim brojem operacija u koderu [4]. Kako bi se to izbjeglo koristi se nain
kodiranja objanjen u sljedeem podpoglavlju.

8
3.1. LINEARNO VREMENSKO KODIRANJE

Kako bismo izbjegli problem kompleksnosti kodera, umjesto stvaranja generatorske


matrice G, LDPC kod moemo kodirati direktno pomou paritetne matrice H tako da ju
transformiramo u gornju trokutastu matricu. Ideja je transformirati matricu to je vie
mogue koristei samo permutacije redaka i stupaca na nain da rasprenost ostane to
vea [4].

Koristei permutacije redaka i stupaca, paritetnu matricu pretvaramo u priblino donju


trokutastu matricu:

Ht A B T
C D E (3.7)

gdje je matrica T donja trokutasta matrica dimenzija (m g)(m g). matrica B je


dimenzija (m g)g i matrica A je dimenzija (m g)k. Broj redova g matrice H preostao
u C, D i E naziva se razmak od pribline zastupljenosti. Kompleksnost kodera i g su
proporcionalni [4].

Uzmimo za primjer da elimo kodirati informaciju:

u1 10 0 1 (3.8)

koristei kod duine 10 i kodne brzine 1/2. Kontrolna matrica takvog koda ima oblik
matrice koja je zapisana jednadbom (3.1):

1 1 0 1 1 0 0 1 0 0
0 1 1 0 1 1 1 0 0 0
H0 0 0 1 0 0 0 1 1 1
1 1 0 0 0 1 1 0 1 0
0 0 1 0 0 1 0 1 0 1

Koristei samo zamjene redaka i stupaca, matricu H prebacujemo u oblik:

9
1 1 0 1 1 0 0 1 0 0
0 0 0 1 0 1 0 1 1 0
Ht0 1 1 0 1 0 1 0 0 1 (3.9)
1 1 0 0 0 0 1 0 1 1
0 0 1 0 0 1 0 1 0 1

Kako bi matrica E postala nul-matrica, koristi se Gauss-Jordan eliminacija, to je


jednako:

I mg 0 A B T
H 1
Ht (3.10)
ET Ig C D 0

gdje vrijede jednakosti:

CE T 1 AC (3.11)

1
DE T B D (3.12)

nadalje, vrijedi:

1 0 0
T 11 1 0 (3.13)
0 0 1

1 0 0 0 0
I mg 00 1 0 0 0
0 0 1 0 0 (3.14)
E T1 I g1 1 1 1 0
1 0 1 0 1

Primjenom Gauss-Jordan eliminacije matrica Ht poprima oblik:

1 1 0 1 1 0 0 1 0 0
0 0 0 1 0 1 0 1 1 0
H0 1 1 0 1 0 1 0 0 1 (3.15)
0 1 1 0 0 1 0 0 0 0
1 0 0 1 0 1 1 0 0 0

Za kodiranje pomou dobivene matrice H kodna rije c = [c1, c2, ..., cn] se dijeli na tri

dijela:

10
cu , p 1 , p2 (3.16)

gdje je:

- uu1 , u2 , , uk informacija duljine k


- p1 p 1 , p1 , , p1
1 2 g prvih g paritetnih bitova

- p2 p 2 , p2 , , p2
1 2 mg ostatak paritetnih bitova

Kodna rije cu , p 1 , p2 mora zadovoljavati jednadbu c H 0 , stoga vrijedi:


T

AuB p1T p20 (3.17)

C uD p10 p 20 (3.18)

Budui je matrica E postala nul-matrica, paritetni bitovi u p 1 sada ovise samo o


informacijskim bitovima te se mogu raunati neovisno o paritetnim bitovima u p2.

Ako matrica D ima svoj inverz, tada se paritetni bitovi p1 mogu izraunati po

sljedeoj formuli:

p1 D1 C u (3.19)

Ako matrica D nema svoj inverz, tada se vri permutacija stupaca matrice H

dok matrica D ne postane inverzibilna. Kada su odreeni paritetni bitovi p 1, paritetni

bitovi p2 mogu se dobiti iz jednadbe:

p2T 1 AuB p1 (3.20)

Nakon odreivanja potrebnih formula, slijedi kodiranje informacije u1 10 0 1 u

kodnu rije cc 1 ,c 2 , , c10 oblika cu , p 1 , p2 gdje su paritetni bitovi p2c 6 ,c 7 i

p2c 8 ,c 9 , c 10 .

Slijedi raunanje paritetnih bitova prema formuli (3.19):

11
1
1
p1 D1 C u 1 0 0 1 1 0 0 01 0
1 11 0 0 1 0
0
1

Paritetni bitovi p2 su odreeni sa:

p2 u1 u2 u4 u51 1 0 11
1

p2 u4 p 1 p2 0 1 10
2 1 1

p2 u2 u3 u5 p 1 1 0 1 00
3 2

Dobivena kodna rije sada ima oblik:

c11 0 0 11 0 1 0 0

4. DEKODIRANJE

Skup algoritama koji se koriste za dekodiranje jednoznano se nazivaju algoritmi


prosljeivanja poruke jer se poruka, koju je potrebno dekodirati, prosljeuje po vrhovima
Tanner-ovog grafa. Algoritmi prosljeivanja poruke jo se nazivaju i algoritmi iterativnog
dekodiranja budui se poruka izmjenjuje izmeu kontrolnih i bit vorova dok se poruka ne
dekodira [4].

Jedan od algoritama za dekodiranje jest algoritam prosljeivanja poruke na binarnom


kanalu s brisanjem (BEC Binary Erasure Channel).

4.1. BINARNI KANAL S BRISANJEM

Binarni kanal s brisanjem, ili krae BEC kanal, predstavlja komunikacijski kanal u
kojem izvor alje jedan bit (0 ili 1), a prijemnik moe primiti poslani bit ili poruku da
poslani bit nije primljen tj. da je poslani bit obrisan [5].

12
Poruke se prenose kao razine napona +U i U, dok razina napona 0 V predstavlja
pogrean prijenos [6].

Slika 4.1 Binarni kanal s brisanjem [5]

Na izlazu BEC kanala postoje tri simbola y 1, y2 i y3, gdje y1 odgovara ulaznom
simbolu x1, y2 odgovara ulaznom simbolu x2, a y3 oznaava greku tj. obrisani simbol.

Matrica BEC kanala ima oblik [6]:

1 pe 0 pe
P (4.1)
0 1 pe pe

Vjerojatnosti pojedinih simbola izraene su sljedeim izrazima:

p y1 p x 1 1 pe (4.2)

p y 2 p x 2 1 pe (4.3)

p y3 p e (4.4)

4.2. DEKODIRANJE PROSLJEIVANJEM PORUKE NA BEC


KANALU

U BEC kanalu, bitovi su primljeni toni ili su obrisani s vjerojatnou brisanja p e.


Budui su primljeni bitovi uvijek ispravno primljeni, zadaa dekodera je odrediti
vrijednosti obrisanih bitova [4].

13
Ukoliko postoji jednadba pariteta koja ukljuuje samo jedan obrisani bit, vrijednost
tog bita moe se odrediti tako da dobivena vrijednost zadovoljava uvjet parnog pariteta. Na
primjer, ako neki kod sadri jednadbu pariteta:

c 1 c 3 c 5 c 70

i ako su poznate vrijednosti c1=0, c3=1 i c7=0, tada c5 mora biti 1 kako bi jednadba pariteta
bila zadovoljena.

U Tanner-ovom grafu bit vor alje poruku M svakom kontrolnom voru s kojim
ima vezu. Poruka, oznaena s Mi za i-ti bit vor, postavlja vrijednost bita u 1 ili 0 ako je
poznata vrijednost, ili u vrijednost x ako je bit obrisan. Ukoliko kontrolni vor primi samo
jednu poruku s vrijednosti x, moi e odrediti vrijednost bita tako da odabere vrijednost
koja e zadovoljavati paritet. Kontrolni vorovi vraaju razliite poruke svakom bit voru s
kojim su povezani. Poruka poslana s j-tog kontrolnog vora na i-ti bit vor, oznaena s E j,i,
postavlja vrijednost i-bita, odreenu j-tim kontrolnim vorom, u 1, 0 ili x. Kada bit vor, u
kojem se nalazi obrisani bit, primi poruku s nekom vrijednou, tada se ta vrijednost
upisuje na mjesto obrisanog bita. Cijeli postupak se ponavlja sve dok nisu poznate
vrijednosti svih bitova [4].

Neka je kroz BEC kanal poslana kodna rije oblika:

c0 0 1 01 1 (4.5)

Na prijemnoj strani dobili smo kodnu rije sa izgubljenim bitovima oblika:

y0 0 1 x x x (4.6)

Za obnavljanje izgubljenih bitova koristimo algoritam prosljeivanja poruke. Na poetku


algoritma kreiramo poruku koja e biti poslana iz bit vora u kontrolne vorove:

M001x x x (4.7)

Tanner-ov graf ovakvog koda sa kreiranom porukom prikazan je na slici 4.2:

14
Slika 4.2 Poetak dekodiranja [4]

U prvom koraku dekodiranja izraunate su poruke kontrolnih vorova. Prvi


kontrolni vor povezan je s prvim, drugim i etvrtim bit vorom, pa su primljene poruke 1,
0 i x. Kako kontrolni vor ima samo jednu ulaznu poruku vrijednosti x, odlazna poruka E 1,4
bit e vrijednost etrvtog bita u kodnoj rijei [4]:

E1,4 M 1 M 2 (4.8)

E1,4 0 0

E1,4 0

Drugi kontrolni vor povezan je s drugim, treim i petim bit vorom, pa su njegove
primljene poruke 0, 1 i x. Odlazna poruka E2,5 odreuje vrijednost petog bita u rijei [4]:

E2,5 M 2 M 3 (4.9)

E2,50 1

E2,51

Trei kontrolni vor povezan je s prvim, petim i estim bit vorom, a njegove
primljene poruke su 0, x i x. Trei kontrolni vor primio je dvije vrijednosti x te stoga ne
moe odrediti vrijednost niti jednog bita. Odlazna poruka kontrolnog vora je x. Takoer,
etvrti kontrolni vor prima dvije vrijednosti x, te ne moe odrediti vrijednost niti jednog
bita. Odlazna poruka kontrolnog vora je x [4].

U drugom koraku, svaki bit vor, koji sadri vrijednost x, koristi svoju dolaznu
poruku kako bi aurirao vrijednost bita. etvrti bit u kodnoj rijei je nepoznat i bit vor

15
prima poruke vrijednosti E1,4=0 i E4,4=x, te na temelju tih vrijednosti postavlja vrijednost
etvrtog bita u 0. Vrijednost petog bita se na temelju dolaznih poruka, E 2,5=1 i E3,5=x,
postavlja u vrijednost 1. esti bit je takoer nepoznat, ali njegove dolazne poruke su E 3,6=x
i E4,6=x, te se stoga vrijednost bita ne moe odrediti. Na kraju drugog koraka,Tanner-ov
graf prikazan je na slici 4.3, a poruka M, iz jednadbe (4.7) sada glasi [4]:

M 0 0 10 1 x

Slika 4.3 Tanner-ov graf na kraju drugog koraka

Algoritam se nastavlja kako bi se odredila vrijednost posljednjeg bita. Trei


kontrolni vor povezan je s prvim, petim i estim bit vorom, a njegove primljene poruke
su 0, 1 i x. Kako je vor primio samo jednu x vrijednost, mogue je odrediti njegovu
odlaznu poruku E3,6 [4]:

E3,6 M 1 M 5 (4.10)

E3,60 1

E3,61

etvrti kontrolni bit povezan je s treim, etvrtim i estim bit vorom, te su njegove
primljene poruke 1, 0 i x. vor je primio samo jednu vrijednost x te je mogue odrediti
vrijednost odlazne poruke E4,6 [4]:

E4,6 M 3 M 4 (4.11)

E4,6 1 0

16
E4,6 1

esti bit kodne rijei je nepoznat, a dolazne poruke estog bit vora su E 3,6=1 i
E4,6=1. Na osnovu primljenih vrijednosti, esti bit se postavlja u vrijednost 1. Ovime je
zavren postupak dekodiranja, a dekodirana poruka glasi [4]:

M 0 0 10 1 1

Vidimo da je poruka ispravno dekodirana unato gubitku pola poruke.

17
5. ZAKLJUAK

Cilj seminarskog rada bio je poblie objasniti LDPC kodove te neke naine kodiranja i
dekodiranja.

LDPC kodovi su klasa linearnih blok kodova koji mogu postii performanse turbo
kodova uz manje trokove implementacije. Glavna karakteristika LDPC kodova je vrlo
mala udaljenost od Shannonove granice, ime se postie vrlo visoki kodni dobitak.

Linearne blok kodove, pa tako i LDPC kodove, mogue je prikazati pomou kontrolne
matrice H ili pomou Tanner-ovog grafa koji se sastoji od bit vorova i kontrolnih vorova.

Jedan od jednostavnijih algoritama za dekodiranje, koji je opisan u ovom radu, je


algoritam prosljeivanja poruke u kojem se za dekodiranje koristi ranije spomenuti Tanner-
ov graf. Jo neki od algoritama za dekodiranje su Bit-flipping i Sum-product algoritmi.

Zahvaljujui svojoj uinkovitosti, LDPC kodovi su pronali iroku primjenu u


digitalnim komunikacijskim sustavima, te danas predstavljaju jedan od najboljih naina
kodiranja u komunikacijskim sustavima.

18
LITERATURA
[1]

https://en.wikipedia.org/wiki/Low-density_parity-check_code#History

Pristup ostvaren: 21.11.2015.

[2]

https://en.wikipedia.org/wiki/Low-density_parity-check_code

Pristup ostvaren: 21.11.2015.

[3]

http://oss.unist.hr/~mnizetic/ZASTITNO%20LINIJSKI%20KODIRANJE/SEMINARSKI
%20RADOVI/CH17-UP.pdf

Pristup ostvaren: 21.11.2015.

[4]

http://sigpromu.org/sarah/SJohnsonLDPCintro.pdf

Pristup ostvaren: 28.11.2015.

[5]

https://en.wikipedia.org/wiki/Binary_erasure_channel

Pristup ostvaren: 27.11.2015.

[6]

http://documents.tips/documents/teorija-informacija.html

Pristup ostvaren: 27.11.2015.

You might also like