ERILAISIA LOHKOKOODAUSMENETELMIÄ

Slides:



Advertisements
Samankaltaiset esitykset
Yleistä Läsnäolovelvollisuus Poissaolojen selvitys Käyttäytyminen
Advertisements

Lineaarisia malleja.
Ompelukuvasarja laskosverhon valmistuksesta yksittäiskappaleena.
S ysteemianalyysin Laboratorio Aalto-yliopiston teknillinen korkeakoulu Esitelmä 10 – Juho Kokkala Optimointiopin seminaari - Syksy 2010 Kernel-tasoitus.
Virheen havaitseminen ja korjaus
Ohjelman perusrakenteet
Synkroniset tilakoneet
Kappaleiden tilavuus 8m 5m 7cm 5 cm 14cm 6cm 4cm 4cm 3cm 10cm.
Tietoturvallisuus osa 7
2.8.3 Abstraktit tietotyypit
JOHDANTO VIRHEENKORJAAVAAN KOODAUKSEEN ─ KANAVAKOODAUSMENETELMÄT
JATKUVAN AWGN-KANAVAN KAPASITEETTI — SHANNON-HARTLEY -LAKI
LÄHTEENKOODAUS.
Langattomien laitteiden matematiikka 1
TURBOKOODAUS.
RADIOKANAVAT.
Tietoliikennetekniikka II AKari KärkkäinenOsa 27 1 (12) KAISTANLEVEYDEN JA TEHON KÄYTÖN KANNALTA OPTIMAALINEN MODULAATIO — TRELLISKOODATTU MODULAATIO.
Ohjaustarvearvio ja ohjaustarve kartta/ Ryhmänohjaajan näkökulma
INFORMAATIOTEORIA & KOODAUS TÄRKEIMPIEN ASIOIDEN KERTAUS
Tietoliikennetekniikka II AKari KärkkäinenOsa 24 1 (10) LOHKOKOODATUN JA KOODAMATTOMAN JÄRJESTELMÄN SUORITUSKYKYJEN VERTAILU.
KANTATAAJUINEN BINÄÄRINEN SIIRTOJÄRJESTELMÄ AWGN-KANAVASSA
AS Automaation signaalinkäsittelymenetelmät
Valitse seuraaviin vaihtoehtotehtäviin oikea vastaus…
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
1 Senioreiden säästäminen ja maksutavat 2014 SENIOREIDEN SÄÄSTÄMINEN JA MAKSUTAVAT
KERTAUSTA PERUSASTEEN MATEMATIIKASTA Piia junes
TMA.003 / L3 ( )1 3. Funktioista 3.1. Kuvaus ja funktio Olkoon A ja B ei-tyhjiä joukkoja. Tulojoukon A  B = {(x,y) | x  A, y  B} osajoukko on.
RSA – Julkisen avaimen salakirjoitusmenetelmä Perusteet, algoritmit, hyökkäykset Matti K. Sinisalo, FL.
Lineaarinen lohkokoodaus, Block Coding
Elinkeinopoliittinen mittaristo 2014
1.1. Itseisarvo * luvun etäisyys nollasta E.2. Poista itseisarvot
Ohjelman perusrakenteet
Tiedon esittäminen.
2. Vuokaaviot.
1.a) f(x) = 2x(x2 – 3) = 0 2x = tai x2 – 3 = 0 x = tai x2 = 3
Suuntaamattoman graafin syvyyshaku
1 Raha-asioiden suunnitteleminen ja nykyinen rahatilanne Senioritutkimus 2011.
Aritmeettinen jono jono, jossa seuraava termi saadaan edellisestä lisäämällä sama luku a, a + d, a+2d, a +3d,… Aritmeettisessa jonossa kahden peräkkäisen.
Aritmeettinen jono jono, jossa seuraava termi saadaan edellisestä lisäämällä sama luku a, a + d, a+2d, a +3d,… Aritmeettisessa jonossa kahden peräkkäisen.
Maitotaito PIENEN VAUVAN PÄIVÄ Maitotaito.
Jatkuvan parantamisen Jp-taulu
1. Usean muuttujan funktiot
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Heuristinen arviointi Käyttöliittymäseminaari Jere Salonen.
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 15 – Mikko Harju Optimointiopin seminaari - Kevät 2010 Korreloitu tasapaino ja sosiaaliset.
PARAABELI (2. ASTEEN FUNKTION KUVAAJIA)
Muuttujien riippuvuus
5. Lineaarinen optimointi
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 9 - Jaakko Niemi Optimointiopin seminaari - Syksy 2005 / 1 Virittäminen (Tuning) s
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 2 - Jirka Poropudas Optimointiopin seminaari - Kevät 2005 / 1 Bayes-verkoista s
Tilastollisesti merkitsevä nousu Tilastollisesti merkitsevä lasku Edelliseen aineistoon KMT 2005 verrattuna* KMT Kevät06 puolivuosiaineisto KMT SYKSY05/KEVÄT06.
Visual Basic -ohjelmointi
INFORMAATIOTEORIAN JA KOODAUSMENETELMIEN PERUSTEET
2.2 Yksittäiset äänteet 2.2 Yksittäiset äänteet – Äänteiden esittelysivut – Äänteiden esittelysivut Karaoketeksti
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
5. Fourier’n sarjat T
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä # - Esitelmöijän nimi Optimointiopin seminaari - Syksy 2000 / 1 Potentiaalien kertaus ja.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
ERILAISIA LOHKOKOODAUSMENETELMIÄ A Tietoliikennetekniikka II Osa 23 Kari KärkkäinenSyksy 2015.
TURBOKOODAUS Miten turbokoodaus eroaa konvoluutiokoodauksesta? A Tietoliikennetekniikka II Osa 26 Kari KärkkäinenSyksy 2015.
SYMBOLIVIRHETODENNÄKÖISYYDESTÄ BITTIVIRHETODENNÄKÖISYYTEEN
Matematiikkaa 3a, Kertausjakso Lukuja © Varga–Neményi ry 2016
INFORMAATIOTEORIA & KOODAUS TÄRKEIMPIEN ASIOIDEN KERTAUS
BINÄÄRISET TIEDONSIIRTOMENETELMÄT TÄRKEIMPIEN ASIOIDEN KERTAUS
Syventävä matematiikka 2. kurssi
JOHDANTO VIRHEENKORJAAVAAN KOODAUKSEEN ─ KANAVAKOODAUSMENETELMÄT
KVANTISOINTIKOHINA JA AWGN-KOHINAN vaikutus PULSSIKOODIMODULAATIOSSA
LUKU 1 TIETOLIIKENNEJÄRJESTELMIEN ANALYYSI
KANTATAAJUINEN BINÄÄRINEN SIIRTOJÄRJESTELMÄ AWGN-KANAVASSA
LOHKOKOODATUN JA KOODAMATTOMAN JÄRJESTELMÄN SUORITUSKYKYJEN VERTAILU
Esityksen transkriptio:

ERILAISIA LOHKOKOODAUSMENETELMIÄ

Hamming-etäisyys & Minimietäisyys Hamming-etäisyys: di j = w(si  sj), Minimietäisyys: dm = min(dij)  i,j. (n,k)-koodi korjaa t virhettä, jossa t = dm–1/2, eli dm = 2t + 1.

VIRHEEN ILMAISEVAT PARITEETINTARKISTUSKOODIT

Pariteetintarkistuskoodit virheen ilmaisemiseen Yksinkertaisin virheenilmaisukoodi – mutta ei korjaamiseen kykenevä – toteutetaan pariteetintarkistusbitillä. Saadaan (k+1,k)-lohkokoodi, jonka koodisuhde on k/(k+1). Kaikkien n = k+1 -pituisten sanojen Hamming-painoksi – siis ykkösten lukumääräksi – sovitaan joko parillinen tai pariton luku. Sanan paino lasketaan modulo-2 -summalla (exclusive-or -portilla): 0  0 = 0, 0  1 = 1, 1  0 = 1, 1  1 = 0). Jos vastaanotettu sana sisältää parillisen määrän 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).

VIRHEEN ILMAISEVAT JA KORJAAVAT TOISTOKOODIT

Toistokoodit Yksinkertaisin mahdollinen virheenkorjaava koodi saadaan toistamalla kutakin informaatiosymbolia n kertaa. Informaatiosymbolia kohden lähetetään n–1 pariteetintarkistussymbolia, joten koodisuhde = 1/n. (n,1)-lohkokoodilla on siis käytössä vain kaksi 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 informaatiobitin energian (z = Eb/N0:n) kasvattamista, jolloin PE pienenee (informaation siirtonopeus vastaavasti pienenee). Toistokoodi on itse asiassa tehokkain koodausmenetelmä PE:n minimoimismielessä (tiedonsiirtonopeuden kustannuksella), kun n lähenee ääretöntä (vie äärettömän kauan aikaa). Sillä voidaan siis toteuttaa Shannonin 2. teoreeman lupaus. Toiston haittapuoli on pieni koodisuhde 1/n (vastaa siis hyvin suurta redundanssin määrää).

Toistokoodit 1/3 -toistodekoodauksessa käytetään kriteerinä Hamming-etäisyyden minimiarvoa. Boolen-logiikalla toteutettuna se vastaa 3 -tuloisen enemmistölogiikkaportin (majority logic gate) lähtöä.

Esimerkki (S)

Toistokoodin suorituskyky koodisuhteen 1/n funktiona (S)

YHDEN VIRHEEN KORJAAVAT LINEAARISET PARITEETINTARKISTUSKOODIT

Yhden virheen korjaavat pariteetintarkistuskoodit Pariteetintarkistuskoodeilla on suuri informaationopeus (k/n), mutta olematon korjauskyky. Toistokoodeilla on pieni 1/n, mutta hyvä virheenkorjauskyky. Hyvillä koodeilla em. ominaisuudet yhdistyvät kompromissina, koska niitä ei voida saavuttaa samanaikaisesti. Tarkastelemme nyt pariteetintarkistuskoodeja, joissa yhdistyy kohtuullinen informaationopeus ja yhden virheen korjauskyky (t = 1). Koodisanassa a1a2a3...akc1c2...cr, ai:t informaatiosymboleita ja cj:t pariteetintarkistussymboleita. Koodisanan pituus n = k + r. Ongelmana on löytää sopiva r:n arvo, jotta saavutetaan hyvä korjauskyky t = dm–1/2 kohtuullisen suurella koodisuhteella k/n. Sallittuja koodisanoja on 2k kpl ja virheellisesti vastaanotettuja sanoja on teoriassa 2n – 2k kpl. Shannon osoitti, että kun n  , valitsemalla satunnaisesti 2n -suuruisesta avaruudesta n-pituinen sana kullekkin 2k informaatio-sanalle, saadaan useimmiten dm -etäisyydeltään hyvä koodi (di,j~n/2). Dekoodaus onnistuu vain ko. sanaa laillisten sanojen taulukkoon vertaamalla. Iso taulukko  haku & dij:n lasku aikaa vievää.

Yhden virheen korjaavat pariteetintarkistuskoodit Shannonin tarinan opetus: Jopa aivan täysin satunnaisesti valitut koodit ovat ihan hyviä PE -suorituskyvyn kannalta. Perusongelmana kuitenkin on, että satunnaiselta koodilta puuttuu sisäinen matemaattinen rakenne, minkä vuoksi dekoodaustaulukon käyttö on hankalaa (etäisyyksien laskenta vie aikaa ja muistia). Siksi koodisuunnittelussa tarvitaan avuksi matemaattista teoriaa, jotta koodaus ─ ja ennen kaikkea dekoodaus ─ olisivat helposti ja nopeasti toteutettavissa elektroniikalla tai ohjelmallisesti. 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:

Yhden virheen korjaavat 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. Koska [R] on vastaanotettu koodisana, se voidaan kirjoittaa muotoon [R] = [T]  [E], missä [E] on kanavan aiheuttama n-pituinen virhevektori. Dekoodausongelma pelkistyy oleellisesti vektorin [E] määrittämiseen, sillä koodisana voidaan palauttaa lailliseksi [R]:n ja [E]:n yhteenlaskulla ([E]:n paino sama kuin virheiden lkm.).

Yhden virheen korjaavat pariteetintarkistuskoodit Ensimmäiseksi – siis [E]:n laskemiseksi – kerrotaan [R] vasemmalta puolelta [H] -matriisilla. Saatavaa 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 (Hamming-paino = 1). Kertomalla [E] vasemmalta puolelta matriisilla [H] osoittaa, että oirevektori [S] on matriisin [H] i:s sarake, missä virhe on paikassa i. Eli kerrotaan [H] vasemmalta [R]:llä ja verrataan saatua [S] vektoria [H]:n sarakkeisiin. Sama sarakkeen arvo kertoo tn. virheen paikan i. Useamman virheen tapauksessa em. menetelmä ei toimi. Edellä siis oletettiin, että PE oletetaan pieneksi, jolloin Hamming-painon 1 omaava virhevektori [E] on mitä todennäköisin.

Esimerkki =

Yhden virheen korjaavat pariteetintarkistuskoodit [A] = k:n informaatiobitin vektori, [G] = generoijamatriisi, [I] = mm yksikkömatriisi, [H] = pariteetintarkistusmatriisi, jonka sanotaan olevan systemaattisessa muodossa, kun [H] = [Hp  Ir].

Lineaarisen lohkokoodin generoijamatriisista Toistokoodi (n=3) 0  000 1  111 t4 a2 a4 t7 t6 t5 (7,4) Hamming-koodi a3  Systemaattinen, koska infobitit sellaisenaan. a2 t3 t2 t1 (3,2)-koodi (1 pariteettibitti,parillinen pariteetti) 00  000 01  011 10  101 11  110 a1 

Yhden virheen korjaavat pariteetintarkistuskoodit (S) 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]-matr. etsintä on juuri 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ä. Jos ne sijaitsevat ryhmiteltynä esim. alussa, niin siitä seuraa, että H tulee kätevästi ns. systemaattiseen muotoon: [H] = [Hp  Ir]. [Ir] on rr -matriisi ja Hp on r(n–r) = rk -matriisi. Epäsystemaattisen koodin sanan kaikki bitit ovat jollakin funktiolla riippuvaisia useista eri informaatiobiteistä. Epäsystemaattisessa koodisanassa ei enää esiinny puhtaita informaatiobittejä sellaisenaan.

Yhden virheen korjaavat pariteetintarkistuskoodit (S) [G]-matriisin (kaava 10.110) määrittelemiä koodeja sanotaan lineaarisiksi koodeiksi, koska 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 (XOR) -summataan saaden kolmas jono, niin summajonoa vastaava koodisana on kahta summattua vastaavien koodisanojen summa. [A3] = [A1]  [A2], [A3]:sta vastaava koodisana [T3] = [G][A3] = [G]{[A1]  [A2]} = [G][A1]  [G][A2] = [T1]  [T2]. Koodeja, jotka täyttävät ehdon: [T3] = [T1]  [T2], sanotaan ns. ryhmäkoodeiksi (group codes).

HAMMING-KOODIT

Hamming-koodit Hamming-koodit olivat ensimmäisiä virheenkorjaavia koodeja (nimetty keksijänsä Richard W. Hammingin mukaan). Ne ovat erityisiä yhden virheen korjaavia pariteetintarkistuskoodeja, joilla on minimietäisyys dmin = 3, eli kaikki yhden bitin virheet voidaan varmasti korjata (t = 1). Hamming-koodeja löytyy parametriarvoille: (n,k,t) = (2m – 1, 2m – 1– m,1), m = 2,3,... Tunnetuimmia lineaarisia enemmän virheitä korjaavia (t > 1 ja dmin > 3) koodeja ovat esimerkiksi BCH-koodit (Bose-Ray-Chaudhuri-Hocquenghem), Golay -koodit, jatketut Golay -koodit, Reed-Müller -koodit, Reed-Solomon -koodit (ei-binäärisiä symbolikoodeja), jotka on yleensä nimetty keksijöidensä mukaan. Pariteetintarkistusmatriisilla on dimensiot (2n–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.

Hamming-koodit — Esimerkki

SYKLISET KOODIT

Sykliset koodit Edellä tarkasteltiin pääasiassa pariteetintarkistuskoodien matemaattisia ominaisuuksia, emmekä tarkastelleet kooderien ja dekooderien toteutusta. Toteutuksen, ja erityisesti dekoodauksen (virheen etsinnän ja korjauksen), yksinkertaisuus on tärkeää. Dekooderin kovo voi lohkokoodien tapauksessa olla varsin monimutkainen. Niiden toteutukseen kuten muihin lohkokoodeihin perehdytään syvällisemmin ”Informaatioteorian ja koodauksen perusteet” -kurssissa. Erikoistapauksen yksinkertaisesta dekooderin toteutuksesta pariteetintarkistuskoodeille muodostaa niiden alaluokka: sykliset koodit. Kooderi ja dekooderi voidaan toteuttaa helposti takaisinkytketyllä siirtorekisterigeneraattorilla. Sykliset koodit ovat systemaattisia (informaatiobitit mukana sellaisenaan koodisanassa). Generoijamatriisista [G] riippuva generoijapolynomi g(x) määrittelee koodin lineaarisen takaisinkytketyn siirtorekisterigeneraattorin (LFSRG) takaisinkytkennän rakenteen. Polynomeja on taulukoitu valmiiksi koodausteorian oppikirjoissa erilaisille (n,k,t) -kombinaatioille.

Sykliset koodit Syklisen koodin nimitys tulee siitä, että yhden sanan syklinen permutaatio on aina joku toinen laillinen koodisana. Jos esim. x1x2x3x4...xn–1xn on koodisana, niin myös xnx1x2x3x4...xn–1 on. Syklisiä koodeja tarkastellaan seuraavassa lähinnä esimerkkien valossa (Z&T ei käsittele syklisten koodien teoriaa). Seuraavan sivun kooderilla voidaan generoida kaikki 2k = 24 = 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. LFBSRG:n tila siirtyy aina oikealle. Siirtorekisteri jää lopussa nollatilaan ja on valmis vastaanottamaan seuraavat 4 infobittiä.

Syklinen kooderi (7,4)-koodille (S)

Syklinen dekooderi (7,4)-koodille (S) Edellytyksenä on, että koodi on systemaattisessa muodossa. Ylempi on varastorekisteri. Aluksi kytkin A kiinni ja B auki. Vastaanotetut bitit molempiin rekistereihin. Jos bittivirheitä ei tapahtunut, alemman rekisterin tila on lopussa nollasana (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ä.

BCH-KOODIT (S)

BCH-koodien generoijapolynomeja eri (n,k,t)-arvoille (S) BCH-koodit ovat Hamming -tyyppisten koodien yleistys mahdollistaen useampien virheiden korjaamisen (t>1). Ne ovat myös tehokas syklisten koodien luokka, joilla on laaja lohkon pituuden n, koodisuhteen k/n ja korjauskyvyn t (dmin) valikoima.

BCH-koodien generoijapolynomeja eri (n,k,t)-arvoille (S)

LINEAARISTEN KOODIEN SUORITUSKYKYKUVAAJIA (S)

Lineaaristen koodien suorituskyky (n,k,t):n funktiona (S) 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ä. Suuri koodausvahvistus, kun t >>1 (dmin suuri). Koodisuhde k/n on kuitenkin pieni (paljon redundanssia pariteetti- bittien muodossa).

Lineaaristen koodien suorituskyky (n,k,t):n funktiona (S)

Lineaaristen koodien suorituskyky (n,k,t):n funktiona (S)