1 / 22

Lineaarinen lohkokoodaus, Block Coding

Lineaarinen lohkokoodaus, Block Coding. Alkuperäisen lähdesymbolin pituus on k bittiä. Muodostetaan koodattu symboli lähetettäväksi siirtotielle ja silloin koodattu symboli on pituudeltaan n bittiä (luonnollisesti n>k). Tuloksena on (n, k)-lohkokoodaus.

dea
Télécharger la présentation

Lineaarinen lohkokoodaus, Block Coding

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lineaarinen lohkokoodaus, Block Coding • Alkuperäisen lähdesymbolin pituus on k bittiä. Muodostetaan koodattu symboli lähetettäväksi siirtotielle ja silloin koodattu symboli on pituudeltaan n bittiä (luonnollisesti n>k). Tuloksena on (n, k)-lohkokoodaus. • Bittien lisääminen vaikuttaa hidastavasti tiedonsiirtonopeuteen. • Määritellään koodaussuhde (code rate) R=k/n. • Kerrointa 1-k/n kutsutaan lohkokoodin redundanssiksi. tMyn

  2. Koodauksen suorituskyky (coding efficiency) • Tällä ilmaistaan miten hyvin virheitä pystytään havaitsemaan tai korjaamaan koodatusta informaatiosymbolista suhteessa ”ylimääräisiin” bitteihin. • Jotkin koodaustavat soveltuvat paremmin virheiden havaitsemiseen kuin niiden korjaamiseen. Myös päinvastainen on totta. tMyn

  3. Jos halutaan lähettää bittejä, niin silloin voidaan esim. ryhmitellä bitit kolmen ryhmiksi. Mahdollisia informaatiosanoja tulee siis kahdeksan kappaletta: 000, 001, 010, 011, 100, 101, 110, 111. • Informaatiosanat voidaan koodata kahdeksaksi koodisanaksi, joissa on redundanssia (käytetään kuhunkin koodisanaan esim. 5 bittiä). Näin saadaan aikaan laittomia bittikombinaatioita. • Bittivirheet ovat kahden tyyppisiä: joko virhe voi sattua yksittäiseen bittiin täysin riippumatta virhe- todennäköisyydestä viereiseen bittiin, tai sitten voi tulla virheryöppyjä (useampi peräkkäinen bitti on virheellinen). tMyn

  4. Olkoot koodatut symbolit kaikki saman mittaisia. • Kahden koodatun symbolin etäisyys määritellään erilaisten bittien lukumääräksi vastinkohdissa, siis esim. koodisanojen 111 ja 000 etäisyys on 3 ja koodisanojen 010 ja 011 etäisyys on 1. • Tarkastellaan vielä alkuperäistä esimerkkiä, informaatiosymbolit 000, … 111. Vierekkäisten symbolien etäisyys on 1. Jos siirtotiellä tulee yhden bitin virhe, esim. lähetetään 000 mutta vastaanotetaan 001, niin tuli ongelma! Symboli 001 on laillinen symboli, joten vastaanotin ei voi mitenkään arvata, että virhe on tapahtunut. tMyn

  5. Otetaan esimerkki koodatusta symbolijoukosta, jossa minimietäisyys minkä tahansa koodisanaparin välillä on vähintään 2, siis vaikkapa: 0000, 0011, 0101, 0110, 1001, 1010, 1100, 1111. • Lähetetään esim. 0101 ja vastaanotetaankin 0111 (yhden bitin virhe tapahtui matkalla). Vastaanotin huomaa, että koodisana on laiton, mutta ei pysty päättelemään, mikä olisi oikea, alkuperäinen, koodisana. • Lisätään koodisanojen etäisyyttä siten, että minimietäisyys on 3. tMyn

  6. Jos tällaisessa tapauksessa tapahtuu yhden bitin siirtovirhe, niin vastaanotettu koodisana on 1 etäisyydellä alkuperäisestä lähetetystä koodisanasta, ja vähintään 2 etäisyydellä kaikista muista laillisista koodisanoista. • Nyt siis pystytään korjaamaan yhden bitin virhe/koodisana. tMyn

  7. Yleistys: Jos koodisanojen minimietäisyys on , niin silloin voidaan havaita virhettä. • Vastaavasti jos on parillinen, niin silloin voidaan korjata virhettä, ja jos on pariton, niin pystytään korjaamaan vastaavasti virhettä. tMyn

  8. Lineaarinen lohkokoodaus, systemaattiset algebralliset koodit • Systemaattiset algebralliset koodit voidaan generoida suoraan matriisilaskennan avulla: [v]=[u][G], jossa [u] on [1*k] vektori edustaen alkuperäistä informaatiota [v] on [1*n] vektori edustaen koodattua informaatiota [G] on [k*n] matriisi, jota käytetään koodattujen informaatiosanojen generointiin. tMyn

  9. Esimerkiksi (7, 4) lineaarinen koodi voitaisiin generoida matriisilla . • Jokaista koodingenerointimatriisia [G] kohden on olemassa pariteettitarkistusmatriisi [H]. Kun äskeistä esimerkkimatriisia [G] tarkastellaan, niin huomataan, että vasemmalla ”laidalla” on pariteettibittien generointiin tarvittava osuus. tMyn

  10. Oikealla ”laidalla” on yksikkömatriisi, siis uudelleenkirjoitettuna: . • Pariteettitarkistusmatriisi voidaan kirjoittaa tästä esityksestä aloittamalla yksikkömatriisilla ja jatkamalla matriisin [G] pariteettibittiosuuden transponoidulla muodolla. tMyn

  11. Jos merkitään niin silloin • Auki kirjoitettuna saadaan äskeisillä arvoilla = . tMyn

  12. Pariteettitarkistusmatriisilla on seuraava ominaisuus: • Tulkinta: kun kerrotaan mikä tahansa virheetön koodisana pariteettitarkistusmatriisin transponoidulla muodolla, niin tulokseksi saadaan nollavektori. • Jos siirtotiellä on tapahtunut yhden bitin virhe, niin äskeinen tulo paljastaa virheen paikan ja siis yhden bitin virhe voidaan korjata! • Vastaanotetun koodivektorin ja pariteettitarkistusmatriisin transponoidun muodon tuloa kutsutaan syndroomaksi (syndrome), koska se kertoo, mikä meni pieleen. tMyn

  13. Keksijänsä Richard W. Hammingin mukaan puhutaan suosituista Hamming-lohkokoodeista. • Vaihtoehtoja on monta, esim. (7, 4), (15, 11), (31, 26), (63, 57), (127, 120), (255, 247), (511, 502). • Hamming-koodit ovat tehokkaita, esim. (15, 11) koodauksen suhteeksi saadaan 11/15=73%. • Sitä mukaa kun k kasvaa, vaikeutuu käytännön toteutus: • Kestää kauemmin ryhmitellä informaatiobitit k:n pituisiksi lohkoiksi. • Vastaanotossa yritetään etsiä vastaanotetuista mahdollisesta vaihtoehdosta lähin laillinen vaihtoehdosta. Kompleksisuus kasvaa eksponentiaalisesti! tMyn

  14. Hamming-lohkokoodit ovat osajoukko laajemmasta BCH-koodiperheestä. • BCH, Bose-Chaudhuri-Hocquenghem. Koodausmenetelmä kehitettiin vuosina 1959 ja 1960. • Esim. BCH (127, 64)-koodaus pystyy korjaamaan 10 bittiä/koodisymboli… ja BCH (1023, 11) pystyy korjaamaan 255 bittiä/koodisymboli! Hintana on koodauksen suhde, 11/1023=1%!! • Lohkokoodaus toimii parhaimmillaan ympäristössä, jossa virheet esiintyvät tasaisesti ja mielivaltaisesti vastaanotetuissa koodisymboleissa. tMyn

  15. Jos virheet sitä vastoin esiintyvät purskeisesti, niin silloin tarvitaan lisäksi limitystä (interleaving). • Purskeisuus virhe-esiintymisessä on tyypillistä esim. mobiileissa toimintaympäristöissä: signaalin häipyminen ja monitie-eteneminen. • Yksinkertainen tapa toteuttaa limitys onnistuu seuraavasti: käytetään puskurointia, ja kirjoitetaan koodatut symbolisanat matriisin riveihin. Dataa aletaan sitten siirtämään sarake kerrallaan. tMyn

  16. Reed-Solomon –koodit, Irving Reed, Gustav Solomon • R-S-koodit ovat osajoukko BCH-koodeista. • Nyt operoidaan lohko- eikä bittitasolla. • Alkuperäinen binaari-informaatio pakataan aluksi lohkoihin, esim. kukin lohko on pituudeltaan 8 bittiä. Valitaan k kappaletta näitä 8 bitin lohkoa, ja valitaan tämä uusi lohkokokonaisuus uudeksi jakamattomaksi yksiköksi. • Tämä uusi yksikkö (jossa on k kappaletta 8 bitin lohkoja) koodataan siten, että syntyy n kappaletta 8 bitin lohkoja, luonnollisesti n>k. • Tuloksena on R-S (n, k) -lohkokoodaus. tMyn

  17. Lineaarinen lohkokoodaus, sykliset koodit • Olkoot koodisana yleisessä muodossa • Siirretään bittejä yhden position oikealle ja samalla laitimmainen bitti siirtyy toiseen laitaan, siis • Jos kyseessä on syklinen koodi, niin äskeisellä siirrolla saatiin aikaan uusi kelvollinen koodisana! tMyn

  18. Teoreema 1: Jos g(x) on n-k -asteinen polynomi ja se on polynomin tekijä (factor), niin silloin polynomia g(x) voidaan käyttää generoimaan (n, k) syklinen koodi. • Esim. Polynomi voidaan jakaa tekijöihin Siispä ensimmäisellä tekijällä voidaan generoida (7, 6) syklinen koodi ja kahdella jälkimmäisellä tekijällä voidaan generoida (7, 4) syklinen koodi. tMyn

  19. Teoreema 2: Jokainen i:nnen asteinen polynomi, joka on jakamaton, (irreducible = jaollinen tasan vain itsensä ja ykkösen kanssa) on polynomin tekijä. Tällaista jakamatonta polynomia voidaan käyttää generoimaan (2i+1, i+1) syklinen koodi. • Esim. voidaan osoittaa, että polynomi on jakamaton. Teoreeman perusteella tämä polynomi on polynomin tekijä. Tästä tiedetään suoraan, että polynomilla voidaan generoida (7, 4) syklinen koodi. tMyn

  20. Jos polynomi v(x) edustaa koodisanaa (n, k) koodattuna, niin syklinen siirto oikealle j positiota voidaan toteuttaa kaavalla modulo , missä modulo tarkoittaa sitä, että jaetaan termi polynomilla ja otetaan vastaukseksi jakojäännös. Modulo-operaatio on tarpeen, jos on asteluvultaan n tai korkeampi. • Jos koodi on systemaattinen, niin silloin oikealla laidalla olevat bitit edustavat alkuperäistä koodaamatonta informaatiosanaa u. Tätä voidaan kuvata polynomilla koska se kuvaa n-k position siirtoa oikealle. tMyn

  21. Otetaan tästä polynomista modulo g(x) ja merkitään jakojäännöstä r(x):llä: modulo g(x). • Modulo-operaatio tarkoittaa, että suoritetaan jakolasku jossa q(x)=osamäärä ja r(x)=jakojäännös ja josta otetaan vain jakojäännös. Voidaan siis kirjoittaa lauseke tMyn

  22. Lisätään jakojäännös r(x) yhtälön kummallekin puolelle (modulo-2 aritmetiikassa 1+1=0), jolloin saadaan kaava muotoon • Saatiin siis kelvollinen koodisana aikaan!! • Syndroomapolynomi saadaan jakojäännöksenä jakolaskusta v(x) modulo g(x), jossa v(x) on vastaanotettu koodattu symbolisana ja g(x) on koodin generointipolynomi. • Jos mitään virhettä ei ole siirtotiellä tapahtunut, niin silloin jakojäännöstä ei synny. • Jos virhe on tapahtunut, niin silloin syntyy jakojäännös, jonka muoto riippuu siitä missä kohden virhe tapahtui. tMyn

More Related