Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

ERILAISIA LOHKOKOODAUSMENETELMIÄ 1 521361A Tietoliikennetekniikka II Osa 23 Kari KärkkäinenSyksy 2015.

Samankaltaiset esitykset


Esitys aiheesta: "ERILAISIA LOHKOKOODAUSMENETELMIÄ 1 521361A Tietoliikennetekniikka II Osa 23 Kari KärkkäinenSyksy 2015."— Esityksen transkriptio:

1 ERILAISIA LOHKOKOODAUSMENETELMIÄ 1 521361A Tietoliikennetekniikka II Osa 23 Kari KärkkäinenSyksy 2015

2 HAMMING-ETÄISYYS & MINIMIETÄISYYS Hamming-etäisyys: d i j =HW(s i  s j ), Minimietäisyys: d min =min(d ij )  i,j. (n,k)-koodi korjaa t virhettä, jossa t =  d m –1  /2 ja d min = 2  t + 1. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 2

3 HAMMING-ETÄISYYS & MINIMIETÄISYYS Nähdään ongelma: jos n ja k suuria lukuja, dekoodaustaulukosta tulee suuri, eikä taulukkohakuun perustuva etäisyyksien laskenta ja vertailu ole enää järkevää. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 3

4 VIRHEEN ILMAISEVAT PARITEETINTARKISTUSKOODIT 4 521361A Tietoliikennetekniikka II Osa 23 Kari KärkkäinenSyksy 2015

5 PARITEETINTARKISTUS VIRHEEN ILMAISEMISEEN Yksinkertaisin korjaamiseen kykenemätön koodi toteutetaan pariteetintarkistusbitillä. Saadaan (k+1,k)-lohkokoodi, jonka koodisuhde on k/(k+1). Kaikkien n = k+1 -pituisten sanojen Hamming- painoksi (ykkösten lkm), sovitaan joko parillinen tai pariton luku. Sanan paino lasketaan modulo-2 summalla (exclusive-or): 0  0 = 0, 0  1 = 1, 1  0 = 1, 1  1 = 0). Jos sanassa parillisen määrä virheitä, niin niitä ei pystytä ilmaisemaan. Jos virheiden määrä on pariton, dekooderi havaitsee parittoman määrän virheitä (tn. on kuitenkin tapahtunut vain yksi virhe). Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 5

6 VIRHEEN ILMAISEVAT JA KORJAAVAT TOISTOKOODIT 6 521361A Tietoliikennetekniikka II Osa 23 Kari KärkkäinenSyksy 2015

7 TOISTOKOODIT Yksinkertaisin virheenkorjaava koodi saadaan toistamalla kutakin informaatiosymbolia n kertaa. Informaatiosymbolia kohden lähetetään siis n–1 pariteettibittiä, joten koodisuhde = 1/n. (n,1)-lohkokoodilla on siis käytössä vain kaksi laillista sanaa: 00...0, tai 11...1, joista tehdään dekoodauspäätös {0}, jos enemmistö vastaanotetuista biteistä on nollia, ja {1}, jos enemmistö on ykkösiä. Toistokoodaus vastaa efektiivisesti modulaation kannalta katsottuna informaatiobitin energian (z = E b /N 0 :n) kasvattamista, jolloin P E pienenee (informaation siirtonopeus vastaavasti pienenee). Toistokoodi on tehokkain koodausmenetelmä P E :n minimoimismielessä siirtonopeuden kustannuksella, kun n lähenee ääretöntä (vie äärettömän kauan aikaa). Sillä voidaan siis helposti toteuttaa Shannonin 2. teoreeman lupaus. Toiston haittapuoli on pieni koodisuhde 1/n (vastaa hyvin suurta redundanssin määrää). Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 7

8 TOISTOKOODIEN DEKOODAUS 1/3 -dekoodauksessa kriteerinä Hamming-etäisyyden minimiarvo. Boolen-logiikalla toteutettuna se vastaa tässä 3-tuloisen enemmistölogiikkaportin (majority logic gate) lähtöä. Siksi n oltava pariton luku. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 8

9 ESIMERKKI 1 (S) Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 9

10 SUORITUSKYKY KOODISUHTEEN 1/n FUNKTIONA (S) Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 10

11 YHDEN VIRHEEN KORJAAVAT LINEAARISET PARITEETINTARKISTUSKOODIT 11 521361A Tietoliikennetekniikka II Osa 23 Kari KärkkäinenSyksy 2015

12 YHDEN VIRHEEN PARITEETINTARKISTUSKOODIT Pariteetintarkistuskoodeilla on suuri informaationopeus (n-1)/n  1, mutta olematon korjauskyky. Toistokoodeilla on pieni 1/n, mutta toisaalta hyvä virheenkorjauskyky. Hyvillä koodeilla em. ominaisuudet yhdistyvät kompromissina (ei voida saavuttaa samanaikaisesti). Tarkastelemme nyt pariteetintarkistuskoodeja, joissa yhdistyy kohtuullinen informaationopeus ja yhden virheen korjauskyky (t = 1). Koodisanassa a 1 a 2 a 3...a k c 1 c 2...c r, a i :t informaatiosymboleita ja c j :t pariteetintarkistussymboleita. Koodisanan pituus n = k + r. Ongelmana on löytää sopiva r:n arvo, jotta saavutetaan hyvä korjauskyky t =  d m –1  /2 kohtuullisen suurella koodisuhteella k/n. Sallittuja koodisanoja on 2 k kpl ja virheellisesti mahdollisesti vastaanotettuja sanoja on 2 n – 2 k kpl. Shannon osoitti, että kun n  , valitsemalla satunnaisesti 2 n - suuruisesta avaruudesta n-pituinen sana kullekkin 2 k informaatio- sanalle, saadaan useimmiten d min -arvoltaan hyvä koodi (d i,j  n/2). Dekoodaus onnistuu vain sanoja laillisten sanojen taulukkoon vertaamalla. Iso taulukko  haku & d ij :n laskenta vie aikaa. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 12

13 YHDEN VIRHEEN PARITEETINTARKISTUSKOODIT Shannonin opetus: Jopa aivan täysin satunnaisesti valitut koodit ovat ihan hyviä virheenkorjauskyvyn kannalta (suuri koodausvahvistus), mutta perusongelma on, että satunnaiselta koodilta puuttuu sisäinen matemaattinen rakenne. Dekoodaustaulukon käyttö on siksi hankalaa, koska etäisyyksien laskenta vie aikaa ja muistia. Siksi koodisuunnittelussa tarvitaan avuksi matemaattista teoriaa, jotta koodaus ─ ja ennen kaikkea dekoodaus ─ on helposti ja nopeasti toteutettavissa elektroniikalla tai prosessorilla. Tarkastellaan koodausalgebran keinoin strukturoituja menetelmiä, joilla k bitin sana kuvataan n bitin lohkoksi ja dekoodataan helposti. r kpl pariteettibittejä toteuttavat lineaarisen yhtälöryhmän: Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 13

14 YHDEN VIRHEEN PARITEETINTARKISTUSKOODIT [H] = pariteetintarkistusmatriisi, [T] = koodisanavektori Vastaanotettu sana on [R]. Jos [H][R] ≠ [0], tiedetään, että [R] ei ole sallittu koodisana, eli [R] ≠ [T], ja ainakin yksi virhe on tapahtunut. Toisaalta, jos [H][R] = [0], niin [R] on sallittu koodisana, ja jos symbolivirhetodennäköisyys on pieni, se mitä todennäköisimmin on myös lähetetty sana (ei ole sattunut 2 toisiaan kumoavaa virhettä). Koska [R] on vastaanotettu sana, se voidaan kirjoittaa muotoon [R] = [T]  [E], missä [E] on kanavan aiheuttama n-pituinen virhevektori. Dekoodausongelma pelkistyy vektorin [E] määrittämiseen, sillä koodisana voidaan palauttaa lailliseksi [R]:n ja [E]:n yhteenlaskulla ([E]:n paino HW(E) sama kuin virheiden lkm.). Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 14

15 YHDEN VIRHEEN PARITEETINTARKISTUSKOODIT Ensimmäiseksi – siis [E]:n laskemiseksi – kerrotaan [R] vasemmalta puolelta [H] -matriisilla. Matriisia [S] kutsutaan syndroomaksi, eli oirevektoriksi. [S] = [H]  [R] = [H]  [T]  [H]  [E], eli [S] = [H]  [E], koska [H]  [T] = 0. [E] ei voida ratkaista suoraan kaavasta [S] = [H]  [E], koska [H] ei ole neliömatriisi ja [H] –1 ei siten ole olemassa. Sen sijaan oletetaan, että on tapahtunut vain yksi virhe, jolloin virhevektori on muotoa: [E] = [0 0...1...0] T, eli HW(E) = 1. Kertomalla [E] vasemmalta puolelta matriisilla [H] osoittaa, että oirevektori [S] on matriisin [H] i:s sarake, missä virhe on paikassa i. Virheenkorjausproseduuri: Kerrotaan [H]:lla vasemmalta [R] ja verrataan saatua [S]-vektoria [H]:n sarakkeisiin. Sama sarakkeen arvo kertoo tn. virheen paikan i. Useamman virheen tapauksessa menetelmä ei toimi. Edellä siis oletettiin P E pieneksi, jolloin Hamming-painon 1 omaava virhevektori [E] on kaikkein todennäköisin. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 15

16 ESIMERKKI 2 Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 16 = =

17 YHDEN VIRHEEN PARITEETINTARKISTUSKOODIT [A] = k:n informaatiobittien vektori, [G] = generoijamatriisi, [I] = m  m yksikkömatriisi, [H] = pariteetintarkistusmatriisi, jonka sanotaan olevan systemaattisessa muodossa, kun [H] = [H p  I r ]. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 17

18 GENEROIJAMATRIISI  KOODERIN RAKENNE Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 18 a2a2 t3t3 t2t2 t1t1 (3,2)-koodi (1 pariteettibitti,parillinen pariteetti) 00  000 01  011 10  101 11  110 a1a1  a1a1 t3t3 t2t2 t1t1 Toistokoodi (n=3) 0  000 1  111 a1a1 t2t2 t4t4 t3t3 a2a2 a4a4 t7t7 t6t6 t5t5 (7,4)-koodi a3a3  t1t1  Systemaattinen, koska infobitit sellaisenaan.

19 PARITEETINTARKISTUSKOODIEN OMINAISUUKSIA Systemaattisilla koodeilla informaatiobitit sisältyvät sellaisenaan koodisanaan pariteettibittien seassa (eivät siis ole useamman informaatiobitin funktioita). Pariteettibitit on puolestaan laskettu informaatiobiteistä kullekkin koodille ominaisella matemaattisella säännöllä. Sopivien sääntöjen eli [H]-matriisien etsintä on koodimatemaatikkojen työtä. Systemaattisen koodin informaatiobitit voivat sijaita, joko yhdessä sanan alussa tai lopussa, tai ripoteltuna pitkin koodisanaa. Niiden ei myöskään tarvitse olla alkuperäisessä järjestyksessä päästä lukien. Jos ne sijaitsevat ryhmiteltynä esim. alussa, niin siitä seuraa, että H tulee kätevästi ns. systemaattiseen muotoon: [H] = [H p  I r ]. [I r ] on r  r -matriisi ja H p on r  (n–r) = r  k -matriisi. Epäsystemaattisen koodin sanan kaikki bitit ovat jollakin funktiolla riippuvaisia useista eri informaatiobiteistä. Epäsystemaattisessa koodisanassa ei siis enää esiinny puhtaita informaatiobittejä sellaisenaan. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 19

20 PARITEETINTARKISTUSKOODIEN OMINAISUUKSIA (S) [G]-matriisin määrittelemiä koodeja sanotaan lineaarisiksi koodeiksi, koska n = k+r koodisymbolia on muodostettu k:n informaatiosymbolin lineaarikombinaationa. Matriisialgebrasta tiedetään, että lineaarinen yhtälöryhmä vastaa matriisia. Lisäksi on olemassa ominaisuus, että jos kaksi erilaista k:n bitin informaatiojonoa modulo-2 -summataan (XOR) saaden kolmas jono, niin summajonoa vastaava koodisana on kahta summattua vastaavien koodisanojen summa. [A 3 ] = [A 1 ]  [A 2 ], [A 3 ]:sta vastaava koodisana [T 3 ] = [G][A 3 ] = [G]{[A 1 ]  [A 2 ]} = [G][A 1 ]  [G][A 2 ] = [T 1 ]  [T 2 ]. Koodeja, jotka täyttävät ehdon: [T 3 ] = [T 1 ]  [T 2 ], sanotaan ns. ryhmäkoodeiksi (group codes). Kalvosarjan 22 sivun 37 koodi oli tuollainen ryhmäkoodi. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 20

21 HAMMING-KOODIT 21 521361A Tietoliikennetekniikka II Osa 23 Kari KärkkäinenSyksy 2015

22 HAMMING-KOODIT Hamming-koodit olivat ensimmäisiä virheenkorjaavia koodeja (nimetty keksijän Richard W. Hammingin mukaan). Ne ovat erityisiä yhden virheen korjaavia pariteetintarkistuskoodeja, joilla on minimietäisyys d min = 3. Hamming-koodeja arvoille: (n,k,t) = (2 m – 1, 2 m – 1– m,1), m = 2,3,... Tunnetuimmia lineaarisia enemmän virheitä korjaavia (t > 1 ja d min > 3) koodeja ovat esimerkiksi BCH-koodit (Bose-Ray-Chaudhuri- Hocquenghem), Golay –koodi (23,12), jatkettu Golay –koodi (24,12), Reed-Müller -koodit, Reed-Solomon -koodit (ei-binäärisiä symbolikoodeja), jotka on yleensä nimetty keksijöidensä mukaan. Pariteetintarkistusmatriisilla on dimensiot (2 n–k –1)  (n–k) ja se on hyvin helppo konstruoida: Hamming-koodin pariteetintarkistus- matriisin [H] i:s sarake on numeron i binäärinen lukuvastine. Tällä koodilla on em. ominaisuudesta johtuen sellainen mielenkiintoinen ominaisuus, että yhden virheen tapauksessa myös oiresana [S] on virheen paikan järjestysnumeron binäärinen vastine. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 22

23 HAMMING-KOODIT — ESIMERKKI 3 Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 23

24 SYKLISET KOODIT 24 521361A Tietoliikennetekniikka II Osa 23 Kari KärkkäinenSyksy 2015

25 SYKLISET KOODIT Edellä tarkasteltu pariteetintarkistuskoodien matemaattisia ominaisuuksia, emmekä emme tarkastelleet kooderien ja dekooderien toteutusta. Toteutuksen, ja erityisesti dekoodauksen (virheen etsinnän ja korjauksen), yksinkertaisuus on oleellista. Dekooderin kovo voi lohkokoodien tapauksessa olla varsin monimutkainen. Erikoistapauksen yksinkertaisesta dekooderin toteutuksesta pariteetintarkistuskoodeille muodostaa sykliset koodit. Kooderi ja dekooderi voidaan toteuttaa takaisinkytketyllä siirtorekisterigeneraattorilla. Sykliset koodit ovat systemaattisia: informaatiobitit mukana sellaisenaan koodisanassa, alkuun ryhmiteltynä) Generoijamatriisista [G] riippuva generoijapolynomi g(x) määrittelee koodin lineaarisen takaisinkytketyn siirtorekisterigeneraattorin (LFSRG) takaisinkytkennän rakenteen. Polynomeja g(x) on taulukoitu valmiiksi koodausteorian oppikirjoissa erilaisille (n,k,t) -kombinaatioille. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 25

26 SYKLISET KOODIT Syklinen koodi: Sanan syklinen permutaatio on aina joku toinen laillinen joukon koodisana. Jos esim. x 1 x 2 x 3 x 4...x n–1 x n on koodisana, niin myös x n x 1 x 2 x 3 x 4...x n–1 on. Seuraavan sivun kooderilla voidaan generoida kaikki 2 k = 2 4 = 16 laillista koodisanaa. Kyseessä on (n,k) = (7,4) syklinen koodi. Käytössä modulo-2 –summaus (XOR). Siirtorekisteri on alussa täytetty nollilla ja kytkin on A-asennossa 4 kellojakson ajan. Kytkin siirty B-asentoon infobittien syötön jälkeen, jossa asennossa se on 3 kellojakson ajan, jonka jälkeen kytkin siirtyy takaisin A- asentoon. n–k siirron jälkeen rekisteri sisältää n–k = 3 pariteettibittiä liitettäväksi infobitteihin koodisanan loppuun. LFSRG:n tila siirtyy aina oikealle. Siirtorekisteri jää lopussa nollatilaan ja on valmis vastaanottamaan seuraavan 4 bitin lohkon. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 26

27 ESIMERKKI 4: SYKLINEN (7,4)-KOODERI (S) Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 27

28 ESIMERKKI 4: SYKLINEN (7,4)-DEKOODERI (S) Koodin infobitit sanan alussa. Ylempi on varastorekisteri. Aluksi kytkin A kiinni ja B auki. Vastaanotetut bitit molempiin rekistereihin. Jos bittivirheitä ei tapahtunut, alemman rekisterin tila on lopussa nollasana (on siis oiresana = 0). Sen jälkeen kytkimien paikat vaihdetaan. Jos bittivirhe tapahtui, eli lopussa rekisterissä oleva oiresana ≠ 0, niin virhe korjautuu (bitin kääntö) automaattisesti kombinaatio- logiikkapiirissä. Nähdään, että dekooderin päätteleminen vaikeaa, jopa pienillä (n,k)-arvoilla. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 28

29 BCH-KOODIT (S) 29 521361A Tietoliikennetekniikka II Osa 23 Kari KärkkäinenSyksy 2015

30 BCH-KOODIT (S) BCH-koodit ovat Hamming -tyyppisten koodien yleistys mahdollistaen useampien virheiden korjaamisen  d min > 3, t > 1. Ne ovat myös tehokas syklisten koodien luokka, joilla on laaja lohkon pituuden n, koodisuhteen k/n ja korjauskyvyn t (d min ) valikoima. Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 30

31 BCH-KOODIEN GENEROIJAPOLYNOMEJA (S) Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 31

32 BCH-KOODIEN GENEROIJAPOLYNOMEJA (S) Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 32

33 LINEAARISTEN KOODIEN SUORITUSKYKYKUVAAJIA (S) Paljonko lohkokoodeilla saadaan koodausvahvistusta? 33 521361A Tietoliikennetekniikka II Osa 23 Kari KärkkäinenSyksy 2015

34 LOHKOKOODIEN SUORITUSKYKY (S) Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 34 Suuri koodausvahvistus, kun t >>1 (d min suuri). Koodisuhde k/n on kuitenkin pieni (paljon redundanssia pariteetti- bittien muodossa). Demodulaattorin lähdössä näkyvä modulaatiomenetelmään liittyvä kanavavirhetn., joka näkyy kanavadekooderin tulossa. Dekooderin lähdössä näkyvä korjauksen jälkeinen virhetn. on siis pienempi, jos dekooderi ei generoi lisävirheitä.

35 LOHKOKOODIEN SUORITUSKYKY (S) Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 35

36 LOHKOKOODIEN SUORITUSKYKY (S) Syksy 2015521361A Tietoliikennetekniikka II Osa 23 Kari Kärkkäinen 36


Lataa ppt "ERILAISIA LOHKOKOODAUSMENETELMIÄ 1 521361A Tietoliikennetekniikka II Osa 23 Kari KärkkäinenSyksy 2015."

Samankaltaiset esitykset


Iklan oleh Google