Download as pdf or txt
Download as pdf or txt
You are on page 1of 46

Kanalno kodiranje

Predavanje 3
2019. godine
doc. dr. Pamela Njemčević
Sadržaj

 U sklopu predavanja
 biće izvršena klasifikacija kanalnih FEC kodova - uvod
 biće predstavljena Shannon-ova kodna teorema koja
‘‘opisuje‘‘ težnju kanalnih kodova da imaju dobru i
spektralnu i energetsku efikasnost, nakon čega ćemo
pozicionirati konkretne kodove u odnosu na idealizovanu
Shannon-ovu granicu
 biće predstavljene vrste kanalnih kodova, kroz njihovu
evoluciju
 te će biti ukratko navedene neke od konkretnih današnjih
primjena konkretnih kanalnih kodova
Uvod

 Do sada smo, pri tome, pokazali...


 da za fiksnu raspoloživu vrijednost (SNR) Eb/N0, praktični
način za promjenu kvalitete prenosa od problematične do
prihvatljive (tj. za smanjenje BER-a) je korištenje kanalnih
kodova, tj. tehnika za ispravljanje grešaka
 pomenuto se realizuje dodavanjem redundantnih bita na bite
informacione riječi, tj. formiranjem struktura koje se nazivaju
kodne riječi, i njihovi prosljeđivanje do prijemnika, kroz kanal sa
smetnjama
 još jedna praktična motivacija za korištenje kanalnih kodova je
reduciranje odnosa Eb/N0 za fiksni BER, što rezultuje
redukcijom predajne snage odnosno energetskom efikasnošću
 pri čemu je očigledno da se dodavanjem redundandnih bita
povećava energetska efikasnost na račun spektralne efikasnosti (ili
smanjenjem korisničke brzine ili povećanjem prenosnog opsega)
Uvod

 Do sada smo, pri tome, pokazali...


 uvažavajući prethodno, pri izboru kanalnog koda za
konkretnu aplikaciju, neophodno je voditi računa da se
ostvare željene spektralna i energetska efikasnost
 dodatno, kanalno kodiranje doprinosi i povećanju
kompleksnosti primopredajnika, što je također neophodno
uzeti u obzir 
 odnosno, neophodno je praviti kompromise između prihvatljive
vjerovatnoće greške s jedne strane, te bandwith-a i pomenutih
kompleksnosti, s druge strane
 različite aplikacije/mediji prenosa, pri tome, imaju različite
prioritete po pitanju prethodno nabrojanih faktora  što je
razlog zbog kojeg su do danas razvijeni brojni kanalni kodovi, za
različite aplikacije i prenosne medije (uključujući i očekivane
vrijednosti SNR na prijemu)
Uvod

 Historijski, FEC kodovi se mogu klasificirati kao


 blok kodovi i
 konvolucioni kodovi
 u zavisnosti od postojanja ili nepostojanja memorije u koderu
 Blok kodovi (N, k)
 generišu se na način da kanalni koder uzima blokove bita (ili
ponekad simbola) iz informacionog izvora, dužine k i na svaki
blok dodaje N – k redundantnih bita (N > k)
 N-bitski blok predstavlja kodnu riječ, a N je dužina kodne riječi
 iz kanalnog kodera izlaze biti brzinom R0 = (N/k)Rs, gdje Rs predstavlja
bitsku brzinu na izlazu iz informacionog izvora (korisnička brzina)
 k/N je bitska kodna brzina (veličina bez dimenzije), i 0<k/N<1
 R0 [bps] je kanalna podatkovna brzina (channel data rate)
Uvod

 Konvolucioni kodovi
 su kodovi sa memorijom
 izlaz iz konvolucionog kodera zavisi od trenutne ulazne
informacione riječi i određenog broja informacionih riječi
koje su se ranije našle na ulazu u kanalni kodera  kanalni
koder prihvata bite kao kontinualne sekvence (a ne kao
blokove), generišući pri tome kontinualne sekvence na
svom izlazu, veće brzine
 operacija kodiranja može se razmatrati kao konvolucija u
diskretnom vremenu ulazne sekvence sa impulsnim odzivom
kodera, čije je trajanje jednako memoriji kodera
 koder u konvolucionom kodiranju radi sa dolaznim kodnim
sekvencama, koristeći pri tome šemu ‘‘sliding window‘‘, sa
trajanjem koje odgovara veličini memorije kodera
Uvod

 Trellis kodovi
 su vrsta kodova koji su se pojavili u novije vrijeme
 naime, u modelu digitalnog komunikacionog sistema sa
predavanja 1, operacije kanalnog kodiranja i modulacije se
izvršavaju neovisno jedna od druge; međutim, kada je veoma
važno ostvariti visoku spektralnu efikasnost, kanalno kodiranje
se kombinuju sa modulacijom  u takvim uslovima kodiranje se
redefiniše kao uvođenje obrazaca u predajni signal = čime
nastaje tzv. trellis kod
 Blok, konvolucioni i trellis kodovi predstavljaju familiju
klasičnih kodova koji slijede tradicionalne principe koji imaju
korjene u algebri i u svakom od njih postoje brojne podvrste
implementacija, sa različitim karakteristikama, koje daju
optimalne performanse u zadanim uslovima
Uvod

 Pored navedenih kodova, danas je jako zastupljena najnovija


generacija kodnih tehnika, poput turbo ili LDPC kodova
 pomenuti kodovi se fundamentalno razlikuju u odnosu na
tradicionalne, ali su zbog svojih dobrih performansi danas već
gotovo preuzeli primat nad tradicionalnim kodiranjem
 pri čemu se osnovna razlika ogleda u činjenici da su turbo i
LDPC kodovi struktuirani na način da se dekodiranje razdvaja u
niz upravljivih koraka, omogućavajući na taj način realizaciju
moćnih kodova, prihvatljive računarske kompleksnosti (što nije
bilo moguće realizovati sa tradicionalnim kodiranjem)
 ovi kodovi, također, omogućavaju dobijanje prihvatljivo malih
vjerovatnoće grešaka za jako male vrijednosti Eb/N0, što nije bilo
moguće realizovati ranije
*već smo vidjeli pojavu negativnog kodnog pojačanja kod tradicionalnih
kodova!
Shannon-ova kodna teorema

 Pri tome, jedan od osnovnih pokretača razvoja kanalnih


kodova je bila Shannon-ova kodna teorema [4]

 ako DMC kanal ima kapacitet C, a izvor generiše informacije


brzinom manjom od C (Rs<C), tada postoji kanalni kod, čija
primjena omogućava prenos preko kanala sa željeno malom
vjerovatnoćom greške (ili idealno, prenos bez greške)
 Shannon je pri tome dokazao da postojanje pomenutog koda (tzv.
good ili random code) [4]
 a dokaz je bazirao na pretpostavci da se koriste dovoljno duge kodne
riječi koje (zbog svoje dužine) pokazuju osobine slične osobinama
slučajnih sekvenci
 međutim, Shannon nije pokazao kako pronaći pomenute kodove!
Shannon-ova kodna teorema

 Shannon je, zatim, postavio granicu zavisnosti spektralne


od energetske efikasnosti unutar koje je moguće
prethodno realizovati za različite vrijednosti Eb/N0

drugim riječima, odredio je koja se


maksimalna spektralna efikasnost može
ostvariti pri raspoloživoj energetskoj
efikasnosti, koja, pri tome, predstavlja
minimalnu vrijednost Eb/N0 koja se u sistemu
sa odabranom modulacijom i kanalnim
kodiranjem, može ostvariti prilikom prenosa
kroz postojeći kanal, sa ciljanom
vjerovatnoćom greške!!!!!
*BPSK kroz AWGN bez kodiranja za BER = 10-5
udaljena je oko 10 dB od Shannon-ove granice, a
prema Shannon-u, primicanje je moguće realizovati
odgovarajućim kanalnim kodiranje
Shannon-ova kodna teorema

 Pri tome, sve do 90ih godina mislilo se da je kodove koji


rade u blizini Shannon-ove granice nemoguće realizovati u
praksi
 70-ih godina predloženi su konvolucioni koderi koji su se
primakli 3 dB od Shannon-ove granice
 značajniji iskorak učinjen je uvođenjem ulančanih kodova
(koji se realizuju kombinovanjem 2 individualna koda) – 2.3 dB
od Shannon-ove granice
 konačno, 90-ih godina, predložen je turbo kod, a za njim i
LDPC, koji se primiču Shannon-voj granici za dio dB, pri čemu
novi LDPC kodovi idu čak do 0.0045 dB od granice!!!
Shannon-ova kodna teorema

 Sad se postavlja pitanje kako se određuje udaljenost od


Shannon-ove granice i kako joj se može primaći?

granična vrijednost za Eb/N0

PITANJE? Da li se može
povećanjem reda modulacije
primaknuti Shannon-ovoj granici?

s povećanjem reda
PITANJE: Na koji način se uopšte računa blizina Shannon-ovoj granici??? modulacije, za isti
- za sistem sa nekom zadanom modulacijom sa poznatom spektralnom BER, povećava se
efikasnošću i za ciljanu vjerovatnoću greške, računa se potrebni odnos Eb/N0, potrebni Eb/N0
te se gleda udaljenost te vrijednosti u odnosu na vrijednost Eb/N0 na sa dodavanjem
Shannon-novoj krivoj za razmatranu modulaciju/spektralnu efikasnost redundanse, smanjuje se
potrebni Eb/N0, ali i
- konkretno, na slici, razmatra se ciljana vjerovatnoća greške 10-5, za koju se spektralna efikasnost
najprije za modualciju BPSK u AWGN-u računa Eb/N0, a zatim se računa ista
vrijednost uz primjenu različitih kanalnih kodova, te se gleda koliko je koja spektralna efikasnost oko 0.5
vrijednost udaljena od Shannon-ove krive
Shannon-ova kodna teorema

 Dakle, evidentno je da se uvođenjem kanalnog kodiranja


primičemo Shannon-ovoj granici
 pri čemu se sad postavlja pitanje, kakvi nam kanalni kodovi
omogućavaju što je moguće veće primicanje?
- ranije smo vidjeli da nam povećanje količine
redundanse, odnosno smanjenje odnosa k/N za
isti tip koda ne utiče povoljno na BER, tj. na
energetsku efikasnost
- slično, smanjenje odnosa k/N ne utiče
povoljno ni na spektralnu efikasnost, jer
manje k/N znači i manju korisničku brzinu
Pb - nakon KD - dakle, vidjeli smo da nam smanjenje
P - prije KD redundanse, odnosno povećanje k/N utiče
povoljno i na energetsku efikasnost (potreban
nam je manji Eb/N0 za istu vjerovatnoću
greške), kao i na spektralnu efikasnost
Shannon-ova kodna teorema

 Dakle, očigledno, primicanje Shannon-ovoj granici


omogućavaju kodovi sa što manje redundanse (sa velikim
k/N)
 međutim, problem kod kodova sa malo redundanse (za fiksni tip
koda) je taj što se (slijedeći pravila formiranja kodnih riječi)
mogu realizovati isključivo sa velikim dužinama kodnih riječi da
bi se postigle željene performanse sa aspekta broja grešaka
koje kod treba da koriguje
- da bi se realizovao koder/dekoder sa velikim
dužinama kodnih riječi potreban je veliki broj logičkih
kola i srodnih elemenata za hardware-sku realizaciju
kodera i dekodera, kao odnosno veliki prostor na ploči
* ovo je posebno problematično kod aplikacija čiji
uređaji trebaju imati mali broj elementarnih logičkih
kola
*A. Goldsmith: ‘‘Wireless Communications‘‘ - dodatno, kod kodera/dekodera sa velikim N povećava
se i trajanje procesa kodiranja/dekodiranja
Shannon-ova kodna teorema

 Dakle, očigledno, primicanje Shannon-ovoj granici


omogućavaju kodovi sa što manje redundanse (sa velikim
k/N), odnosno sa velikim dužinama kodnih riječi
 pri čemu se konkretni praktični rezultati uticaja
povećanja k/N na hardware-sku i vremensku kompleksnost
mogu vidjeti iz rezultata datih u tabeli

*‘‘Hardware Implementatin of Cyclic Codes Error Correction on FPGA‘‘


Izbor kanalnog koda???

 U skladu sa prethodnim, sada se postavlja pitanje kako


odabrati kanalni kod za konkretne aplikacije?
 neformalno – kanalni kod treba odabrati tako da omogući
optimalnu upotrebu raspoloživih resursa – propusnog opsega,
snage i kompleksnosti, na način da se pri tome ostvari
zahtijevani kvalitet servisa [1]
 formalno, izbor se bazira na vjerovatnoći greške, spektralnoj
efikasnosti i energetskoj efikasnosti (potrebnim za postizanje
zahtijevanog QoS-a) te kompleksnosti primopredajne šeme
(kanalnih kodera i dekodera) [1] koji su oprečni zahtjevi 
odnosno bazira se na pronalaženju kompromisa između
nabrojanih oprečnih zahtjeva za konkretnu aplikaciju!!!
 No krenimo redom... da vidimo kakvi to sve kanalni kodovi
postoje
Linearni blok kodovi

 Klasa lineranih blok kodovi predstavlja konceptualno


najjednostavnije i prve korištene kanalne/zaštitne kodovi
*fokus analize (u sklopu predmeta) je uglavnom na binarnim kodovima

 pri čemu, kao smo već rekli, kod (N, k)  na k korisnih bita
(info. riječi) dodaje N-k redundantnih bita koji omogućavaju
detekciju/korekciju određenog broja pogrešno primljenih bita
 bitska kodna brzine Rb=k/N – pri tome određuje za koliko se
reducira podatkovna/korisnička (data rate) brzina (brzina na
izlazu iz informacionog izvora) pri korištenju kanalnog koda
 kako smo već opisali, kodne riječi dužine N mogu uzeti jednu od 2N
vrijednosti, a 2k od njih se biraju na način da se ostvari maksimalno
kodno pojačanje, odnosno maksimalna Hamming-ova udaljenost koda
Linearni blok kodovi

 Binarni blok kod je linearni


 kada je mapiranjem k info. bita u N kodnih bita linearno, tj.
kada 2k kodnih riječi (dužine N) predstavlja k-dimenzionalni
podprostor N-dimenzionalnog vektorskog prostora, takav da
vrijedi
 da se među kodnim riječima mora nalaziti riječ sa svim 0
 da se binarnim sabiranjem svake 2 kodne riječi dobija ponovno
kodna riječ tog koda
 kodne riječi binarnog linearnog blok koda se generišu na način
 da se info. riječ i = [i1, i2, ..., ik] pomnoži sa maticom G dimenzija kxN
(po modulu 2), koja se naziva generatorska matrica koda i kao rezultat
dobija se kodna riječ x = [x1, x2, ..., xN]  x = i * G
 generatorska matrica G određuje kako se od info. riječi dobijaju kodne
riječi  mora biti odabrana da omogući korekciju zadanog broja grešaka t
tj. da osigura generisanje kodnih riječi sa potrebnom dhmin (dhmin = f(t))
Linearni blok kodovi

 Za dekodiranje linearnih blok kodova


 koristi se tzv. parity check matrica H koja se formira od G
 i vrši se na način da se prispjela kodna riječ y množi sa H
 ako je proizvod y * HT = [0], pretpostavlja se da nije došlo do greške
(ili nije ili je greška takva da je proizvela drugu kodnu riječ koda) i
dekoder na svom izlazu izbacuje informacionu riječ koja odgovara
prispjeloj kodnoj riječi
 ako y * H ≠ [0], traži se ona kodna riječ koja se najmanje razlikuje od
primljene, ili direktnim poređenjem (2k poređenja) ili pomoću tzv.
sindroma (N poređenja za kodove koji ispravljaju po 1 grešku)
 Mana kodova kod kojih se kodiranje/dekodiranje vrši matričnim
množenjem je kompleksna realizacija kodera/dekodera i predugo
procesiranje (u smislu broja operacija potrebnih da se izvrše
kodiranje/dekodiranje) koji jako brzo rastu sa porastom N 
zbog čega se u praksi najčešće koristi podklasa linearnih blok
kodova - ciklički blok kodovi
Linearni blok kodovi

 Realizacija kola za kodiranje/dekodiranje linearnog


binarnog blok koda (7, 4)

*RTL prikazi (7, 4) kodera/dekodera, ‘‘Implementacija (7, 4)


Hamming – ovog kodera/dekodera na FPGA‘‘
Linearni blok kodovi

 Ciklički blok kod


 predstavljaju podklasu linearnih blok kodova kod kojih je svaka
kodna riječ ciklički pomjeraj druge kodne riječi tog koda
 ciklička priroda ovih kodova omogućava da se realizuju jednostavni
koderi/dekoderi (korištenjem shift registara, sa povratnom
spregom) mnogo manje kompleksnosti od one potrebne za množenje
matrica kod običnih blok kodova (sa velikim N)
 kod ovih kodova, kodne riječi generišu se množenjem polinoma
 informaciona riječ se pretvara u odgovarajući informacioni polinom
 generatorska matrica se jednoznačno preslikava u generatorski polinom
 a množenjem informacionog i generatorskog polinoma, dobija se kodni
polinom, čiji su koeficijenti biti kodne riječi
*detalji oko formiranja generatorskog polinoma i
dobijanja kodnih riječi (analitički ili grafički) biće
dati u narednim predavanjima
Primjeri linearnih blok kodova

 Hamming-ov kod, pri tome, predstavlja konkretan primjer


 linearnih binarnih blok kodova za korekciju 1 greške u povorci
od N (n) bita, sa dhmin = 3 (neovisno od N ili k), za koji vrijede
pravila formiranja

 izumljeni su 1950. godine (Richard Hamming), 1. FEC kod


 on je 40-ih godina radio na Bell-ovoj elektromehaničkoj mašini
baziranoj na relejima, sa ulazima ubacivanim preko bušenih traka
 tokom vikenda, kada bi se detektovale greške, mašina bi stala i
pokrenula indikator greške, tako da operator može da otkloni
problem  zbog prekovremenog rada i rada vikendima na
otklanjanju grešaka, Hamming je odlučio da pokuša osmisliti kod
koji bi sam ispravio greške
Primjeri linearnih blok kodova

 Hamming-ov kod

 uticaj promjene odnosa k/N na BER


 Hamming (7, 4) za BPSK modulaciju i AWGN kanal  p = (P) =
Q(sqrt(2*4/7*Eb/N0)) = 0.0036 za Eb/N0 = 100.8 (8 dB)  BER
= Pb = 7.3*10-4
 Hamming (15, 11) za BPSK modulaciju i AWGN kanal  p =
Q(sqrt(2*11/15*Eb/N0)) = 0.0012 za Eb/N0 = 100.8 (8 dB)  Pb =
8.25*10-5 *‘‘Applications of Hamming Codes to Public Safety Mobile Communication
Systems‘‘
Primjeri linearnih blok kodova

 Hamming-ov kod se danas rijetko koristi u praksi jer


 ima fiksnu Hamming-ovu distancu i broj grešaka koje kod
može korigovati bez obzira na N, te problematičnu
implementacija kodera sa velikim dužinama kodnih riječi
(potrebnih da bi se približili se Shannon-ovoj granici)
 danas se koristi u kompjuterskoj (RAM) i ECC memoriji

 koristi se i u mobilnim komunikacionim sistemima za javnu


bezbjednost
Primjeri linearnih blok kodova

 BCH (Bose–Chaudhuri–Hocquenghem codes) kodovi


 predstavljaju cikličke kodove koji pri velikim brzinama imaju
bolje performanse od svih drugih binarnih blok kodova sa istim
N i k, pri srednjim i velikim SNR
 njihova mana je negativno kodno pojačanje pri malim Eb/N0

 kodiranje se realizuje polinomijalnim množenjem


Primjeri linearnih blok kodova

 BCH kodovi, za razliku od Hamming-ovih kodova imaju osobinu


 da je kod prilagodljiv, tj. da može da ispravi odabrani broj grešaka
za istu dužinu kodne riječi  drugim riječima, moguće ga je
dizajnirati tako da ispravlja višestruke greške unutar kodne riječi
 N = 2m – 1 (GF(2m))
 N – k ≤ mt
 dhmin ≥ 2t + 1  mogućnost ispravke t ili više grešaka u povorci od N bita
 druga prednost ovog koda je i jednostavnost njegovog dekodiranja,
korištenjem tzv. sindrom dekodiranja  pri kojem se dekoderi
mogu realizovati na malom hardware-u male potrošnje
 BCH kodovi se danas primjenjuju u
 u satelitskim aplikacijama, za kodiranje na CD-ovima, DVD-ovima,
diskovima itd.
Primjeri linearnih blok kodova

 RS (Reed-Solomon) kodovi su nebinarni blok kodovi


 koji imaju slične karakteristike kao i binarni, s tim da se
umjesto bita, kodne riječi sastoje od simbola koji uzimaju
vrijednosti 0, 1, ..., q-1 (q je najčešće 2k)
 N = q – 1 = 2m - 1
 N – K = 2t
 dmin = 2t+1
 može se pokazati da RS kod može korigovati isti br. grešaka kao
BCH, sa većom Rc (RS(15, 11, 5) i BCH(15, 7, 5))

 jedan od najpopularnijih RS kodova je RS(255, 223) sa


simbolima dužine 8 bita  koji predstavlja NASA-in
standardizovani kod za satelitske komunikacije
Primjeri linearnih blok kodova

 Performanse RS kodova u AWGN i bežičnim kanalima kao i


njihov odnos sa drugim linearnim blok kodovima
 mogu se sagledati sa date slike

 a kao i BCH kodovi, imaju negativno kodno pojačanje pri Eb/N0 <
5 dB (tj. pogodni su samo za srednje i velike SNR-ove)
Konvolucioni kodovi

 Kod konvolucionih kodova, kodne riječi se generišu slanjem


info. bita kroz linearne shift registre s konačnim brojem
stanja

 pri tome, izlazna kodna riječ iz konvolucionog kodera zavisi od K


prethodnih kodnih riječi dužine k  izlaznih n bita zavisi od kK ul.
bita (za razliku od blok koda gdje n (N) bita na izlazu zavisi samo od
k ulaznih bita!)  zbog čega pomenuti kodovi predstavljaju kodove
sa memorijom
 kodna brzina pomenutih kodova je i dalje k/N
 za definisanje koda je, pri tome, neophodno opisati kako se generiše
kodna riječ u zavisnosti od ulaznih k bita i preostalih K-1 stanja
Konvolucioni kodovi

 u tom smislu, konvolucioni koder se može opisati pomoću


dijagrama stabla, dijagrama stanja i trellis dijagrama
 Konvolucioni koder i trellis dijagram – primjer
 za opis kodera neophodno je ispitati kakav izlaz proizvodi
svaki mogući ulazni bit za sva moguća stanja registara
Konvolucioni kodovi

 Dekodiranje
 se, u slučaju konvolucionog dekodiranja, umjesto traženja
kodne riječi koja je najpribližnija primljenoj kodnoj riječi
(blok kod), vrši na način da se kroz trellis dijagram traži
kodna sekvenca najpribližnija primljenoj
 pri dekodiranju se može vršiti tvrdo ili meko odlučivanje
 a jedan od načina za dekodiranje je da se primljena kodna
sekvenca uporedi sa svim mogućim kodnim sekvencama kroz
trellis i da se odabere ona kod koje je Hamming-ova
udaljenost od primljene riječi/korelaciona metrika
minimalna/maksimalna
 nedostatak opisanog pristupa je u tome što proračuni moraju
biti urađeni za svaku granu  dugotrajni proračuni
 te se kao alternativa koristi tzv. Viterbi-jevo dekodiranje
Konvolucioni kodovi

 Viterbi-jevo dekodiranje
 reducira kompleksnost prethodno opisane procedure
konvolucionog dekodiranja, otklanjanjem iz razmatranja
putanja koje ne mogu doseći maksimalnu metriku
 od svih putanja koje ulaze u čvor odbacuju se sve osim one sa
najvećom parcijalnom metrikom do tog čvora – ona putanja
koja se ne odbaci naziva se preživjela pitanja

‘‘Power-Aware Wireless Communication System Design


for Body Area Networks‘‘
Ulančani kodovi

 Ulančani (concatenated) kodovi


 koriste 2 nivoa kodiranja, vanjsko i unutrašnje
- unutrašnji kod dizajniran je za otklanjanje većine grešaka
- vanjski kod je manje efikasan i koristi se za reduciranje
broja preostalih grešaka (kada je primljena kodna riječ sa
malom Pb)  realizuje se najčešće kombinacijom RS i
konvolucionog koda npr.
- vanjski i unutrašnji koder najčešće se razdvajaju
interleaver-om – za razbijanje blokovskih grešaka
 ulančani kodovi postižu malo Pb sa relativno malim povećanjem
kompleksnosti u poređenju sa pojedinačnim kodovima
 dekodiranje se vrši u 2 faze  suboptimalno dekodiranje
 ili alternativno – kao kompleksno iteratirvno združeno dekodiranje

 Ulančani kodovi bili su široko rasprostranjeni u svemirskim


komunikacijama 70ih godina (Vojager program), na CD-ovima
(2 RS kodera sa interleaver-om)...
Turbo kodovi

 Turbo kodovi (93. godine)


 predstavljaju paralelno ulančane kodovi razdvojeni interleaver-
om, gdje interleaver ima značajnu ulogu u otklanjanju praga
greške, jer mijenja poredak bita koji ulaze u kodere

 predstavljaju veoma moćne kodovi koji se za dio dB (0.5)


približavaju Shannon-ovoj granici kapaciteta za AWGN
 koriste iterativno dekodiranje
Turbo kodovi

 Iterativno/turbo dekodiranje
 na bazi primljene kodne riječi (m, X1) dekoder 1 generiše odluku
(SDD) u formi mjere vjerovatnoće p(m1) o predajnim bitima
 pomenuta info. se prosljeđuje do dek. 2, koji generiše vlastitu
p(m2) na osnovu primljene riječi (m, X2) i p(m1) i to šalje dek. 1
 proces se iterativno ponavlja sve dok m = m1 = m2
 kriteriji zaustavljanja nisu jasno definisani, jer često algoritam ne
konvergira

BER=10-6 za Eb/N0 manje od 1 dB!!!


PRAG GREŠKE!!!
nakon 18 rundi ne ostvaruje se značajniji dobitak
Turbo kodovi

 Turbo kodovi imaju sljedeće osobine


 iteratrivna procedura dekodera osigurava mali BER bez
povećanja kompleksnosti dekodera
 međutim, oni imaju prag greške na ~10-6 (što onemogućava
njihovu primjenu za aplikacije koji zahtijevaju jako male
BER-ove)
 dodatno, interleaver unosi veliko kašnjenje, zbog čega je
primjena turbo kodova ograničena u real time aplikacijama
 Danas se primjenjuju
 kao NASA-in standard za svemirske komunikacije
 za digitalne video zapise
 u sklopu 3G standarda (CDMA, UMTS), 4G, 5G...
Turbo kodovi
‘‘Some Observations on Comparing Efficiency in
Communication Systems‘‘

‘‘Turbo-Charging Next-Gen Wireless, Optical


Systems‘‘
LDPC

 Low Density Parity Check codes (LDPC)


 su linearni blok kodovi sa strukturom parity check matrice H sa
dc jedinica u svakoj koloni i dv jedinica u svakom redu, pri čemu
su dc i dv relativno male vrijednosti u odnosu na dužinu kodne
riječi  što znači da imaju mali udio nenultih elemenata u
matrici H  low density
 za kodne riječi velike dužine, performanse LDPC kodova se
primiču Shannon-ovoj granici (ponekad nadmašujući performanse
turbo kodova)
 a osnovna razlika između turbo i LDPC kodova je u tome što je
 turbo koder je male kompleksnosti, ali je proces dekodiranja
veoma kompleksan (zbog iterativne prirode i prosljeđivanja
poruka)
 dok je LDPC koder kompleksan, ali je njegovo dekodiranje
relativno jednostavno!!!
LDPC

 LDPC dekodiranje
 bazira se na iterativnoj proceduri, ali je proces
dekodiranja paraleliziran i može se izvršiti relativno brzo
na veoma jednostavnim dekoderima
 pri čemu, u literaturi, i dalje postoje brojna otvorena
pitanja o relativnim performansama LDPC i turbo
kodera!!!

AWGN kanal

‘‘LDPC FEC is becoming the preferred technology in


wireless backhaul‘‘ ‘‘Quantitative analysis on the comparative study of various
error correction techniques‘‘
Kodiranje u bežičnim kanalima

 Blok i konvolucioni kodovi


 dizajnirani su da osiguraju dobre performanse u AWGN
kanalima (žičani kanali, storage...) = u kojima se javljaju
pojedinačne slučajne greške
 bežični kanali – su kanali sa fading-om
 u kojima se greške pojavljuju u paketima, kao posljedica
pojave dubokog feding-a
većina kodova dizajniranih za AWGN kanale ne daju dobre
performanse u bežičnim kanalima, te mogu rezultovati gorim
performansama u bežičnim kanalima nego u slučaju da se ne
koristi nikakvo kanalno kodiranje!!!
 zbog čega se, za poboljšanje performansi prenosa u bežičnim
kanalima, kanalno kodiranje kombinuje sa interleaving-om koji
ima zadatak da ublaži posljedice paketskih grešaka
Kodiranje u bežičnim kanalima

 Kanalno kodiranje + interleaving


 paketske greške izazvane dubokim fading-om rasprše se preko
više kodnih riječi tako da se u svakoj od njih nađe samo mali
broj grešaka koje dekoder može ispraviti
 interleaver pri tome predstavlja niz od d redova i N kolona
 u interleaver dizajniran za (N, k) blok kod, kodne riječi se učitavaju
po redovima, tako da se u svaki red učita po jedna kodna riječ
 sadržaj interleaver-a se zatim iščitava po kolonama i šalje u
modulator
 a deinterleaver obavlja obrnutu funkciju od interleaver-a
Primjena kanalnog kodiranja

 GSM zaštitno kodiranje (govorni kanali) – vrši se kodovima sa


nejednakom zaštitom Princip rada KK: govor se dijeli u
blokove od po 20 ms i digitalizira, pa
kodira govornim koderom na 260 bita
CRC 3 bita redundanse - g(x)=x3+x+1 za svakih 20 ms
260 bita na izlazu iz govornog kodera
+4 tail bita  konvolucioni FEC 1/2 se dalje dijele na 50 veoma važnih,
132 važnih i 78 nevažnih bita, koji
svaki za sebe, ulaze u odgovarajuće
 WCDMA (3G celularna mreža) kanalne kodere (Rb=260/456=0.57)

Koriste se 2 šeme kanalnog kodranja za


različite vrste servisa:
1. konovulciono kodiranje se koristi pri
prenosu govora i MPEG4 (BER < 10-3)
2. turbo kodiranje se koristi za prenos
podataka koji toleriše veće kašnjenje
Primjena kanalnog kodiranja

 Digital Video Broadcasting


 u DVB-T (Terrestiral) se koristi ulančani konvolucioni i RS kod
 u DVB-S (Satellite) se koristi turbo kodiranje
 u II generaciji DVB-T2 i DVB-S2 se koriste ulančani LDPC i
BCH kodovi
 GPS Princip rada KK: CRC koder dodaje
24 paritetna bita za detekciju
preostalih grešaka nakon
konvolucionog dekodiranja;
konvolucioni dekoder bazira se na
Viterbijevom mekom odlučivanju
(sa kodnim pojačanjem oko 5 dB)
Primjena kanalnog kodiranja

 xDSL

Princip rada KK: ulazni biti


se dijele u putanju koja ne
toleriše kašnjenje (bez
interleaver-a) i putanju za
koju kašnjenje nije presudno
(sa interleaver-om)
Primjena kanalnog kodiranja

 Primjena zaštitnog kodiranja unutar specifičnih polja


određenih protokola
 Ethernet frame (1522  1526)

 Bluetooth tehnologija (različiti kodovi za različite namjene)


 header (kod za detekciju HEC) + kod (3, 1) koji se primjenjuje za
svih 18 bita header-a

 payload
Primjena kanalnog kodiranja

 Kod pohrane podataka na diskove, QR kodove...


za zaštitu podataka na CD-ovima, koriste se 2 ulančana RS koda (32, 28) i
(28, 24), razdvojena interleaving-om  interleaving je važan jer
omogućava korekciju paketskih grešaka koje nastaju kada se 1 ili više
blokova na CD-u ošteti (npr. ogrebe)
- kod je u stanju da ispravi paket grešaka dužine 4000 bita

kod QR kodova (npr. za verziju 1 koja može pohraniti 26 B podataka) koristi se RS


kodiranje, sa različitim udjelom redundanse (u zavisnosti kakva se oštećenja očekuju)

 može da ispravi 5B grešaka

You might also like