260 likes | 846 Views
LINEARNO BINARNI BLOK KODOVI. Tomislav Pandurić, 329 Odjel za fiziku, Osijek Svibanj 2013. Uvod u linearno binarne blok kodove. definiraju su preko skupa vektora (vektorski prostor ) svaka kodna riječ binarnog blok koda K duljine n može se predstaviti binarnim vektorom
E N D
LINEARNO BINARNI BLOK KODOVI Tomislav Pandurić, 329 Odjel za fiziku, Osijek Svibanj 2013.
Uvod u linearno binarne blok kodove • definiraju su preko skupa vektora (vektorski prostor) • svaka kodna riječ binarnog blok koda K duljine n može se predstaviti binarnim vektorom x = [x1, x2, …, xi, …, xn] • definirane su operacije zbrajanja i množenja
Neka je V(n) skup svih binarnih vektora duljine n (takvih je 2n vektora) • zbrajanja vektora i množenja vektora skalarom definirano je sa: x+ y =[x1, x2, …, xn] + [y1, y2, …, yn] = [x1 + y1, x2 + y2, …, xn+ yn], a· x = a · [x1, x2, …, xn] = [a · x1, a · x2, …, a · xn], gdje su a, xi i yj sklari iz F2 = {0, 1} , a x i y vektori iz V(n) (V(n) je vektorski prostor)
Definicija linearnog blok koda • Neka je blok-kod K podskup vektorskog prostora V(n): K V(n). Ako je za sve x, yЄ Ki a Є F2ispunjeno: - x + y Є K - a · x Є K onda je Klinearan binarni blok-kod
Težina kodne riječi • Težina kodne riječi xkoda K je broj pozicija kodne riječi na kojima se nalazi simbol 1 • Oznaka težine kodne riječi xje w(x) Primjer: w(100101) = 3, w(000100) = 1.
Hammingova udaljenost dviju kodnih riječi: • može se odrediti iz izraza: d(x, y) = w(x - y) Primjer: 100101 d(x, y) = w(100001) = 2 - 000100 100001
Generirajuća matrica • svaku kodnu riječ možemo izraziti kao linearnu kombinaciju vektora baze x = a1 · b1 + a2 · b2 +… + ak· bk • Broj kodnih riječi koje mogu nastati svim linearnim kombinacijama vektora baze je 2k • Matrica dimenzija k x n čiji se reci sastoje od vektora baze koda (n, M, d) naziva se generirajuća matrica (n- duljina koda, M - broj kodnih riječi, d - udaljenost koda)
d(K) = min w(x) = 3 Oznaka koda: [5, 4, 3] = (5, 2, 3) Oznaka linearnog blok koda je [n, M, d] = (n, k, d)
Primjer: • Binarni kod K = (5, 4, 3) ima kodne riječi: • za bazu se mogu uzeti dvije zadnje kodne riječi: z1=00111 i z2=11011 • generirajuća matrica koda K koja ga jedinstveno opisuje je: • Sve se kodne riječi mogu dobiti kao linearna kombinacija a · z1 + b · z2, gdje su a i b Є {0, 1}
Standardni oblik generirajuće matrice • Dva su blok koda ekvivalentna ako se jedan iz drugog mogu dobiti postupcima zamjene pozicija (stupaca) i permutacijom simbola • Ekvivalentni linearni blok kodovi dobivaju se primjenom pravila generirajuće matrice ekvivalentnih linearnih blok kodova
Generirajuće matrice ekvivalentnih linearnih blok kodova • Dva ekvivalentna linearna binarna blok koda [n, k], K1 i K2, imaju generirajuće matrice G1 i G2koje se jedna iz druge mogu dobiti sljedećim operacijama: - zamjena redaka - dodavanje jednog retka drugom retku - zamjena stupaca
Standardni oblik generirajuće matrice • Generirajuća matricaG nekog koda K ima standardni oblik ako ima strukturu G = [ Ik | A ], gdje je Ik jedinična matrica reda k, a A matrica dimenzija k× (n−k) Primjer:
Do jednog od standardnih oblika generirajuće matrice G može se doći na način da se na postojećoj matrici G izvrši zamjena drugog i trećeg stupca, a zatim se zamijeni prvi i drugi redak • Ova je generirajuća matrica dana u standardnom obliku budući da ima strukturu [ I2 | A ]
KODIRANJE LINEARNIM BLOK KODOVIMA • Način formiranja kodne riječi x odgovara množenju vektor-retka kodirane poruke m duljine k i generirajuće matrice G • Neka je m=[m1, m2, ..., mk] bilo koja od 2kporuka • Tada poruci m odgovara točno jedna riječ x koda K koja je jednaka linearnoj kombinaciji skalara mi i vektora baze ri
Primjer: • Neka se uzme kod (5, 2, 3) koji ima sljedeću generirajuću matricu: • Koder izvora informacije generira poruku 11; u koderu informacije nastaje zaštitna kodna riječ:
Složenost kodiranja može se smanjiti ako se koristi standardni oblik generirajuće matrice koda • U tom se slučaju kodiranje poruke m svodi na množenje: m · [ Ik | A ], a dobivena kodna riječ sastoji se od dva dijela: -prvih k pozicija zauzima sama poruka i taj se dio naziva jednostavno poruka; -ostalih (n-k) pozicija predstavlja umnožak m · A, a taj se dio kodne riječi naziva dio za provjeru (ona predstavlja zalihost kodne riječi)
Primjer: • Generirajuća matrica koda u standardnom obliku iz jednog od prethodnih primjera može se odrediti na način da se zamjene prvi i treći stupac matrice G gdje su matrice:
Neka koder izvora informacije generira poruku 01, te u koderu informacije nastaje zaštitna kodna riječ • Dobivena kodna riječ sastoji se od originalne poruke i tri zalihosna simbola 1
Dekodiranje linearnog blok koda • razmatramo kod (5, 4, 3) = [5, 2, 3] sa sljedećim kodnim riječima • udaljenost koda je 3, te ovaj kod može otkriti dvostruku pogrešku i ispraviti jednostruku pogrešku korištenjem principa dekodiranja najbližim susjedom
Dekoder kanala može postupiti na način da za primljenu kodnu riječ pronađe kodnu riječ koja ima najmanju Hammingovu udaljenost i proglasiti je primljenom kodnom riječi • Složenost takvog postupka raste s brojem kodnih riječi M te za velike kodove ovaj postupak zahtijeva veliko opterećenje procesora prijemnika • Zbog toga su razvijene druge metode brzog dekodiranja linearnih blok kodova (npr. sindromsko dekodiranje)
Vektor pogreške • vektor pogreškee za poslanu kodnu riječ x = [x1, x2, …, xn] i primljenu kodnu riječ y = [y1, y2, …, yn] definira se kao zbroj vektora: e = y + x = [e1e2 … en]
Standardni niz • Standardni niz je tablica koja se formira na sljedeći način: -U prvom retku su kodne riječi koda K; -Prva kodna riječ je 0; -Prvi stupac sadrži vektore pogreški; -U ostalim retcima nalaze se razredi koda K nastali dodavanjem vektora pogreške e kodnim riječima koda K.
Primjer: • Neka se pretpostavi da je koder poslao kodnu riječ x = [0 0 1 1 1], a da je dekoder primio vektor y = [0 1 1 1 1] • Dekoder pronalazi vektor y u trećem stupcu standardnog niza te zaključuje da se dogodila jednostruka pogreška i da je poslana kodna riječ x = [0 0 1 1 1]
Standardni niz ne sadrži sve vektore koje dekoder može primiti, što je posljedica neperfektnosti koda (5, 4, 3) • Dekoder može primiti i sljedeće vektore koji su organizirani na isti način kao i vektori u standardnom nizu • Ako je primljen vektor [0 1 1 1 1], dekoder koristi istu logiku kao i u slučaju standardnog niza, te zaključuje da je poslana kodna riječ [0 0 1 1 1]
Sindromsko dekodiranje • Kako bi smo razjasnili sindromsko dekodiranje, ponajprije bi se trebali upoznati s još nekim pojmovima kao što su matrica provjere pariteta, dualni kod, linearnost i generirajuća matrica dualnog koda što dodatno komplicira stvari, pa je izostavljeno (ako nekog ipak zanima može pronaći više o tome u literaturi na str. 151 – 162)
Literatura • I. S. Pandžić, A. Bažant, Ž. Ilić, Z. Vrdoljak, M. Kos, V. Sinković: Uvod u teoriju informacije i kodiranje, Element, Zagreb, 2007.