VIRHEENKORJAUS JA -ILMAISU

Samankaltaiset tiedostot
VIRHEENKORJAUS JA -ILMAISU

INFORMAATIOTEORIA & KOODAUS TÄRKEIMPIEN ASIOIDEN KERTAUS A Tietoliikennetekniikka II Osa 28 Kari Kärkkäinen Syksy 2015

esimerkkejä erilaisista lohkokoodeista

JOHDANTO VIRHEENKORJAAVAAN KOODAUKSEEN KANAVAKOODAUSMENETELMÄT A Tietoliikennetekniikka II Osa 22 Kari Kärkkäinen Syksy 2015

KONVOLUUTIOKOODIT A Tietoliikennetekniikka II Osa 25 Kari Kärkkäinen Syksy 2015

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus

Koodausteoria, Kesä 2014

KAISTANLEVEYDEN JA TEHON KÄYTÖN KANNALTA OPTIMAALINEN MODULAATIO TRELLISKOODATTU MODULAATIO (TCM)

JATKUVAN AWGN-KANAVAN KAPASITEETTI SHANNON-HARTLEY -LAKI

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

MAANPUOLUSTUSKORKEAKOULU VIRHEENKORJAUSALGORITMIT. Kandidaatintutkielma. Kadetti Ville Parkkinen. 99. kadettikurssi Maasotalinja

Koodausteoria, Kesä 2014

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

TURBOKOODAUS. Miten turbokoodaus eroaa konvoluutiokoodauksesta? A Tietoliikennetekniikka II Osa 26 Kari Kärkkäinen Syksy 2015

Laajennetut Preparata-koodit

Algebralliset menetelmät virheenkorjauskoodin tunnistamisessa

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Luku- ja merkkikoodit. Digitaalitekniikan matematiikka Luku 12 Sivu 1 (15)

811120P Diskreetit rakenteet

ELEC-C7230 Tietoliikenteen siirtomenetelmät

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

KOODAUS- JA INFORMAATIOTEORIA. Keijo Ruohonen

SIGNAALITEORIAN JATKOKURSSI 2003

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä?

MONITILAISET TIEDONSIIRTOMENETELMÄT TÄRKEIMPIEN ASIOIDEN KERTAUS A Tietoliikennetekniikka II Osa 18 Kari Kärkkäinen Syksy 2015

TLT-5400 DIGITAALINEN SIIRTOTEKNIIKKA

Signaalien datamuunnokset. Digitaalitekniikan edut

Signaalien datamuunnokset

Koodausteoria, Kesä 2014

Kombinatorinen optimointi

Johdatus verkkoteoriaan 4. luento

521361A TIETOLIIKENNETEKNIIKKA II

Demo 1: Simplex-menetelmä

Suodatus ja näytteistys, kertaus

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Signaalien generointi

Reedin ja Solomonin koodit Katariina Huttunen

Helsinki University of Technology

1 Määrittele seuraavat langattoman tiedonsiirron käsitteet.

Helsinki University of Technology

ELEC-C5070 Elektroniikkapaja (5 op)

Flash AD-muunnin. Ominaisuudet. +nopea -> voidaan käyttää korkeataajuuksisen signaalin muuntamiseen (GHz) +yksinkertainen

Digitaalinen signaalinkäsittely Desibeliasteikko, suotimen suunnittelu

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

Mediaanisuodattimet. Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että. niiden ominaisuudet tunnetaan hyvin

Digitaalinen tiedonsiirto ja siirtotiet. OSI-kerrokset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Johdatus graafiteoriaan

Tehtävä 2: Tietoliikenneprotokolla

LÄHTEENKOODAUS. Mikä on lähteenkoodauksen perusidea? A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen Syksy 2015

Lineaarinen yhtälöryhmä

SYMBOLIVIRHETODENNÄKÖISYYDESTÄ BITTIVIRHETODENNÄKÖISYYTEEN

Algoritmit 2. Luento 9 Ti Timo Männikkö

Puheenkoodaus. Olivatpa kerran iloiset serkukset. PCM, DPCM ja ADPCM

Paavo Räisänen. Ohjelmoijan binaarialgebra ja heksaluvut.

Ohjelmoijan binaarialgebra ja heksaluvut

a b 1 c b n c n

Algoritmit 1. Luento 10 Ke Timo Männikkö

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Gaussin ja Jordanin eliminointimenetelmä

T Privacy amplification

KOODAUSTEORIA S

5. Siirtoyhteyskerros linkkikerros (Data Link Layer) 5.1. Kaksipisteyhteydet. Kehysten kuljetus. Missä virhe hoidetaan? Virheet.

Koodausteoria, Kesä 2014

Muuntavat analogisen signaalin digitaaliseksi Vertaa sisääntulevaa signaalia referenssijännitteeseen Sarja- tai rinnakkaismuotoinen Tyypilliset

Numeeriset menetelmät

Vektoreiden virittämä aliavaruus

Digitaalitekniikan matematiikka Harjoitustehtäviä

SGN-1200 Signaalinkäsittelyn menetelmät Välikoe

Lineaariset kongruenssiyhtälöryhmät

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Algoritmit 2. Luento 12 To Timo Männikkö

Matematiikan tukikurssi

Successive approximation AD-muunnin

Ratkaisuehdotukset LH 7 / vko 47

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

811312A Tietorakenteet ja algoritmit, , Harjoitus 7, ratkaisu

Kytkentäkentät, luento 2 - Kolmiportaiset kentät

Digitaalinen tiedonsiirto ja siirtotiet

Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0.

7.4 Sormenjälkitekniikka

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

PANKKIVIIVAKOODI-OPAS. Versio 5.3

Ratkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,...

Algoritmit 2. Luento 13 Ti Timo Männikkö

BINÄÄRISET TIEDONSIIRTOMENETELMÄT TÄRKEIMPIEN ASIOIDEN KERTAUS A Tietoliikennetekniikka II Osa 11 Kari Kärkkäinen Syksy 2015

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

1 Rajoittamaton optimointi

Algoritmit 2. Luento 6 To Timo Männikkö

Lineaarinen optimointitehtävä

Algoritmit 2. Luento 3 Ti Timo Männikkö

Ortogonaalinen ja ortonormaali kanta

1 Kannat ja kannanvaihto

A! Modulaatioiden luokittelu. Luento 4: Digitaaliset modulaatiokonstellaatiot, symbolijonolähetteet. ELEC-C7230 Tietoliikenteen siirtomenetelmät

Alla olevassa kuvassa on millisekunnin verran äänitaajuisen signaalin aaltomuotoa. Pystyakselilla on jännite voltteina.

Transkriptio:

VIRHEENKORJAUS JA -ILMAISU Kanavakoodaus B. Sklar, Digital Communications Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 2 (35)

Shannon Hartleyn-laki Otsikon lain mukaan ideaalisen (analogisen) kanavan kapasiteetti (kohina valkoista Gaussin kohinaa) on S S = E C = B log2+ bit/s b R b = teho N = N N B missä B on kaistanleveys ja S/N on signaali-kohinasuhde Siirtojärjestelmän perusresurssit ovat tämän mukaan lähetysteho (määrää signaali-kohinasuhteen) ja kaistanleveys suorituskykyä mitataan virhetodennäköisyyden avulla käytännössä suorituskykyä ei saada täysin ideaaliseksi järjestelmän monimutkaisuus asettaa rajoituksia Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 3 (35) Tiedonsiirron perusresurssit LÄHETYSTEHO KAISTANLEVEYS MONIMUTKAISUUS VIRHETODENNÄKÖISYYS Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 4 (35) 2

Tiedonsiirron perusresurssit Perusresursseja pyritään käyttämään säästeliäästi Siirtojärjestelmät jaetaan tehorajoitettuihin ja kaistarajoitettuihin tehorajoitetuissa järjestelmissä lähetystehoa on niukasti mutta kaistanleveyttä runsaasti esim. avaruustietoliikennejärjestelmät kaistarajoitetuissa järjestelmissä tilanne on päinvastainen esim. analoginen puhelinkanava Perusresursseja pyritään säästämään erilaisilla modulaatio- ja koodausmenetelmillä Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 5 (35) Tiedonsiirron perusresurssit Lähetysteho Signaali-kohinasuhde Monimutkaisuus KOODAUS MODULOINTI KANAVA DEKOODAUS DEMODULOINTI Monimutkaisuus Kaistanleveys Virhetodennäköisyys Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 6 (35) 3

Tiedonsiirron perusresurssit Tavoitteet ovat ristiriitaiset esim. lähetystehon pienentäminen pienentää lähettimen tehonkulutusta ja kokoa, mutta virhetodennäköisyys kasvaa ellei kaistanleveyttä tai käytetyn koodaus- tai modulointimenetelmän monimutkaisuutta lisätä Jotkut järjestelmät ovat sekä kaista- että tehorajoitettuja Tällöin järjestelmän suunnittelussa on oltava erityisen huolellinen käytettävä koodaus- ja modulaatiomenetelmät on yhdistettävä Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 7 (35) Erilaisia koodausjärjestelmiä KANAVAKOODAUSMENETELMÄT FEC-MENETELMÄT ARQ-MENETELMÄT Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 8 (35) 4

Erilaisia koodausjärjestelmiä FEC (forward error correction) virheen ilmaisu ja korjaus dekooderissa ei tarvita paluukanavaa, reaaliaikainen toiminta käytössä tehorajoitetuissa järjestelmissä ARQ (automatic repeat request) virheen ilmaisu ja virheellisen lohkon toistopyyntö vaatii paluukanavan toiminta ei reaaliaikainen sekä teho- että kaistarajoitettuihin järjestelmiin soveltuva menetelmä Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 9 (35) Erilaisia koodausjärjestelmiä KOODERI KANAVA FEC Virheenkorjaus KOODERI KANAVA ARQ PALUU- KANAVA NAK = negative acknowledgement ACK = positive acknowledgement Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 (35) 5

Kanavakoodien jako KANAVAKOODIT LOHKOKOODIT KONVOLUUTIOKOODIT Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 (35) Kanavakoodaus Kanavakoodauksessa signaaliin lisätään sellaista systemaattista redundanssia (ns. ylimäärää), että sitä voidaan käyttää tehokkaasti virheen ilmaisuun ja korjaukseen dekooderissa Redundanssi lisätään pariteettibittien avulla esimerkkinä viitenumeron ja tilinumeron tarkisteen laskeminen Nämä pariteettibitit lasketaan informaatiobiteistä erityisillä kanavakoodausalgoritmeilla n bitin koodilohko n bitin koodilohko n bitin koodilohko k informaatiobittiä (n k) pariteettibittiä k informaatiobittiä (n k) pariteettibittiä k informaatiobittiä (n k) pariteettibittiä (mod-2-summa) LOHKOKOODI koodaus koodaus koodaus Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 2 (35) 6

Merkinnät Redundanssi tuo signaaliin tietynlaisen muistiominaisuuden Jos kanavassa syntyy bittivirhe tai -virheitä, muistia hyväksikäyttäen virhe voidaan ilmaista ja mahdollisesti korjata Merkinnät: n = lohkon pituus (koodisanan tai koodin pituus) k = informaatiobittien lukumäärä (informaatiosanan pituus) n k = pariteettibittien lukumäärä R c = k/n = koodisuhde (koodinopeus) informaatiobittien suhteellinen osuus kaikista biteistä Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 3 (35) Lohko- ja konvoluutiokoodien ero Jos pariteettibitit lasketaan vain samaan lohkoon sisältyvien informaatiobittien avulla, kysymyksessä on lohkokoodi Jos pariteettibitteihin vaikuttavat myös aikaisempien lohkojen informaatiobitit, kysymyksessä on konvoluutiokoodi n bitin koodilohko n bitin koodilohko n bitin koodilohko k informaatiobittiä (n k) pariteettibittiä k informaatiobittiä (n k) pariteettibittiä k informaatiobittiä (n k) pariteettibittiä KONVOLUUTIOKOODI koodaus (mod-2-summa) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 4 (35) 7

Perusteita Erilaisia koodisanoja on siis 2 n kpl kooderi käyttää niistä vain 2 k kpl n > k Kanavassa koodisanaan saattaa tulla virheitä vastaanotettu koodisana voi olla mikä tahansa 2 n :stä koodisanasta Dekoodaus tapahtuu kahdessa vaiheessa virheellinen lohko täytyy ensin ilmaista sen jälkeen virheen (virheiden) paikka täytyy määrittää virhe korjataan invertoimalla virheellinen bitti Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 5 (35) Perusteita Virheen korjaaminen (virheen paikallistaminen) on paljon monimutkaisempaa kuin virheen ilmaisu ARQ-järjestelmässä virhettä ei korjata virheellinen lohko pyydetään lähettämään uudestaan Virheen ilmaisu perustuu siihen, että dekooderi laskee pariteettibitit uudestaan ja vertaa niitä vastaanotettuihin pariteettibitteihin MOD-2 (XOR) k n k virheen ilmaisu virheen korjaus + vertailu Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 6 (35) 8

Perusteita Merkintä (n,k)-koodi tarkoittaa kanavakoodia, jonka lohkonpituus on n ja informaatiobittien lukumäärä k Samaa merkintää käytetään sekä lohko- että konvoluutiokoodeille Jos lähteen nopeus on R s bit/s, niin kooderin lähdössä nopeus on n Rs Rs = k R c bit/s jossa R c = k/n on koodisuhde Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 7 (35) Perusteita Koska n/k >, bittinopeus kasvaa kanavakooderissa johtuu redundanssin lisäämisestä Samalla yhden bitin energia pienenee ε c k = εb = εb n R pidetään koodisanan energiaa samana Kanavassa siis syntyy enemmän virheitä kuin koodaamattomassa järjestelmässä c Koodinkorjauskyvyn ansiosta kuitenkin dekooderin lähdössä tilanne on enemmän kuin kompensoitu Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 8 (35) 9

Perusteita dekooderi P( e) 2 (joskus, -,2 voidaan hyväksyä) P( e) << 2 Dekooderin tulossa virhesuhteen (virheellisten bittien osuus kaikista biteistä) on yleensä oltava 2, muuten dekooderi ei toimi asianmukaisesti Monimutkaisia koodeja käytettäessä virhesuhde,,2 voidaan vielä hyväksyä Rajan yläpuolella dekooderi ei vastaanota riittävästi oikeita bittejä ja dekooderi itse asiassa alkaa lisätä virheitä (kynnysilmiö) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 9 (35) Perusteita Kanavakoodauksessa siis signaalin kaistanleveys kasvaa (jos informaationopeus halutaan säilyttää), mutta virhesuhde paranee Samalla lähetysteholla päästään pienempään virhesuhteeseen kaistanleveyden kustannuksella Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 2 (35)

Shannonin raja Kirjassa Sklar, Digital Communications, Fundamentals and Applications, Second Edition (s. 528) on osoitettu, että jatkuvan kanavan kapasiteetti on positiivinen (C > ), kun signaali-kohinasuhde bittiä kohti on E N b > = ˆ,6 db log e Tätä alarajaa sanotaan Shannonin rajaksi, jota ei voida millään koodaus- tai modulaatiomenetelmällä alittaa Raja on johdettu kvantisoimattomalle pehmeälle päätöksenteolle Kovan päätöksenteon raja on 2 db suurempi 2 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 2 (35) Shannonin raja P(e) raja P(e) = /2 - koodattu järjestelmä -2-4 koodaamaton antipodaalinen järjestelmä (esim. binäärinen PSK) E b P( e) = erfc 2 N -6 2 2 4 6 8 Shannonin raja (,6 db) kovan päätöksenteon raja (+,4 db) koodausvahvistus Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 22 (35)

Koodausvahvistus Koodausvahvistus tarkoittaa koodauksella saavutettua etua signaali-kohinasuhteessa Koodausvahvistus riippuu virhetodennäköisyydestä (ja tietysti koodista) Esim. edellä olevassa tilanteessa on teoriassa mahdollista saavuttaa koodausvahvistus,2 db (kun P(e) = -5 ) kvantisoimatonta pehmeää päätöksentekoa käytettäessä Kovaa päätöksentekoa käytettäessä menetetään koodausvahvistuksesta 2 db ja kolmen bitin kvantisoinnissa (Q = 8),25 db Huom. koodausvahvistus tulee kaistanleveyden kustannuksella Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 23 (35) Lohkokoodit n k n k mod-2 Koodien toiminta perustuu modulo-2-aritmetiikkaan + Lineaarisessa kooderissa käytetään vain mod-2-summaimia eli XOR-piirejä (exclusive or = ehdoton tai) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 24 (35) 2

Lohkokoodit Esim. (n,n )-koodi informaatiosana koodisana informaatiosana koodisana pariteettibitti (parillinen pariteetti) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 25 (35) Lohkokoodit Koodi on systemaattinen, jos informaatiobitit sisältyvät sellaisenaan koodisanaan Koodi on lineaarinen, jos pariteettibitit lasketaan informaatiobittien lineaarisena kombinaationa modulo-2-summana Lineaarisessa koodissa saa käyttää vain XORoperaatioita ei esim. AND-operaatioita Merk. u = [u, u 2,, u k ] informaatiosana x = [x, x 2,, x n ] koodisana Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 26 (35) 3

Lohkokoodit Esim. Toistokoodi (n = 3) (3,)-koodi u x 3 x 2 x Esim. (3,2)-koodi u 2 u u u 2 x x 2 x 3 x 3 x 2 x Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 27 (35) Lohkokoodit Esim. Hamming-koodi ((7,4)-koodi) u 4 u 3 u 2 u x 7 x 6 x 5 x 4 x 3 x 2 x Koska koodit ovat systemaattisia, tarvitsee laskea vain n k pariteettibittiä Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 28 (35) 4

Lohkokoodin generoijamatriisi Generoijamatriisi (generoiva matriisi) määrittelee kooderin rakenteen Esim. (7,4)-Hamming-koodi u 4 u 3 u 2 u x x 2 x 3 x 4 x 5 x 6 x 7 u G = u 2 u 3 u 4 x 7 x 6 x 5 x 4 x 3 x 2 x Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 29 (35) Lohkokoodin generoijamatriisi Koodisana x lasketaan informaatiosanasta u seuraavasti: x = ug Jos u = (), niin x = = = ( ) 4 ( ) + ( ) ( ) 7 4 7 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 3 (35) 5

(7,4)-Hamming-koodi Informaatiosanat Koodisanat Onko koodi systemaattinen? On se Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 3 (35) Lohkokoodin generoijamatriisi Koodisana saadaan siis laskemalla yhteen generoijamatriisin ne rivit, jotka vastaavat informaatiosanan ykkösiä Systemaattisen koodin generoijamatriisi on muotoa G = [ I k P ] jossa I k on yksikkömatriisi (kxk-matriisi) P on kx(n k)-matriisi (pariteettimatriisi) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 32 (35) 6

Lineaarisen lohkokoodin ominaisuuksia. Jokainen koodisana on generoijamatriisin tiettyjen rivien summa 2. Lohkokoodin koodisanat saadaan selville laskemalla kaikki mahdolliset generoijamatriisin rivien summat 3. Kahden koodisanan summa on koodisana (superpositioperiaate) 4. Nollasana on aina koodisana Nimitys lineaarinen koodi tarkoittaa sitä, että kaikki koodisanat voidaan laskea generoijamatriisin rivien lineaarisena kombinaationa Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 33 (35) Käsitteitä Hamming-paino = koodisanan sisältämien ykkösten lukumäärä x = () Hamming-paino = 4 Hamming-etäisyys = kahden koodisanan välinen ero = kahden koodisanan summan Hamming-paino x = () x 2 = () x + x 2 =() Hamming-etäisyys = 6 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 34 (35) 7

8 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 Käsitteitä koodisanat poikkeavat toisistaan kuudessa bittipaikassa merk. d 2 = 6 huom. d ij n Minimietäisyys = koodin koodisanojen välisistä Hamming-etäisyyksistä pienin merk. d min lineaarisen lohkokoodin minimietäisyys on sama kuin minimietäisyys nollasanasta ts. nollasanaa lähimpänä olevan koodisanan Hamming-paino 35 (35) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 Käsitteitä Esim. (7,4)-Hamming-koodi koodisana 7 4 4 3 3 4 4 3 4 3 3 4 4 3 3 Hamming-paino 36 (35)

Käsitteitä painojakauma paino koodisanojen lkm. 3 7 4 7 7 taulukosta nähdään, että koodin minimietäisyys on d min = 3 Huom. Lineaarisen lohkokoodin painojakauma on samalla etäisyysjakauma mistä tahansa koodisanasta Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 37 (35) Lohkokoodin virheen ilmaisu- ja korjauskyky Kova päätöksenteko, kanavamalli x + e y x = lähetetty koodisana y = vastaanotettu sana e = virhesana y = x + e Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 38 (35) 9

Lohkokoodin virheen ilmaisu- ja korjauskyky Virheen ilmaisu verrataan vastaanotettuja pariteettibittejä (n k kpl) dekooderissa laskettuihin pariteettibitteihin virhe on tapahtunut, jos yksikin vastaanotettu pariteettibitti on erilainen kuin informaatiobiteistä dekooderissa laskettu n y = k mod-2 s = + = mod-2-summa oiresana (syndrome) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 39 (35) Lohkokoodin virheen ilmaisu- ja korjauskyky Jos oiresana s =, niin virhe on tapahtunut Oiresana voidaan laskea pariteetintarkistusmatriisin H avulla: s = y H T x(n k) xn nx(n k) jossa matriisi H T on matriisin H transpoosi nx(n-k) (n-k)xn Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 4 (35) 2

2 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 Lohkokoodin virheen ilmaisu- ja korjauskyky Esim. (7,4)-Hamming-koodi. Oiresanan s = (s, s 2, s 3 ) bitit saadaan seuraavasti: y = (y, y 2,, y 7 ) kooderi x 5 = u + u 2 + u 3 x 6 = u 2 + u 3 + u 4 x 7 = u + u 2 + u 4 dekooderi s = (y + y 2 + y 3 ) + y 5 s 2 = (y 2 + y 3 + y 4 ) + y 6 s 3 = (y + y 2 + y 4 ) + y 7 = G x x 2 x 3 x 4 x 5 x 6 x 7 u u 2 u 3 u 4 (n-k)xn ( ) k n T = = I P H y y 2 y 3 y 4 y 5 y 6 y 7 s s 2 s 3 kxn lasketaan pariteettibitit uudestaan verrataan vastaanotettuihin vastaaviin bitteihin 4 (35) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 Lohkokoodin virheen ilmaisu- ja korjauskyky ( ) ( ) 7 4 2 6 4 3 2 5 3 2 ) ( 7 6 5 4 3 2 y y y y y y y y y y y y y y y y y y y k n n n + + + + + + + + + = = s s = y H T x(n k) xn nx(n k),, ),, ( 3 2 s s s = 42 (35)

Lohkokoodin virheen ilmaisu- ja korjauskyky "pariteettimatriisi" pariteetintarkistusmatriisi G = (I k P) H = (P T I n k ) x = ug s = yh T Esim. T GH = = 4 7 Tulos on voimassa yleisesti: GH T = 7 3 4x3 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 43 (35) Lohkokoodin virheen ilmaisu- ja korjauskyky Ominaisuus: oiresana s = yh T on nollasana, jos ja vain jos y on koodisana Ominaisuus: dekooderi voi ilmaista kaikki virhesanat e, jotka eivät ole koodisanoja s = yh T = (x + e)h T = xh T + eh T = eh T jos e on koodisana, niin oiresana on nollasana Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 44 (35) 22

Lohkokoodin virheen ilmaisu- ja korjauskyky Teoreema jos lineaarisen lohkokoodin minimietäisyys on d min, niin koodi voi ilmaista kaikki virhesanat, joiden paino on enintään d min d min x y x d min Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 45 (35) Lohkokoodin virheen ilmaisu- ja korjauskyky s = yh T = (x + e)h T = xh T + eh T = eh T Erilaisia oiresanoja on 2 n k kpl Erilaisia vastaanotettuja sanoja on 2 n kpl Jokaista oiresanaa kohti on siis 2 k kpl vastaanotettua sanaa Selitys: virhesanaan e voi lisätä minkä tahansa koodisanan x (2 k kpl) eikä oiresana silti muutu Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 46 (35) 23

Lohkokoodin virheen ilmaisu- ja korjauskyky Teoreema.2 jos lineaarisen lohkokoodin minimietäisyys on d min, niin koodi voi korjata kaikki virhesanat, joiden paino on enintään t = [(d min )/2], [ ] tarkoittaa tässä kokonaislukuosaa koodia sanotaan tällöin t virhettä korjaavaksi koodiksi d min d min d = min d t = 2 min 2 t = d = d min 2 min 2 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 47 (35) Lohkokoodin virheen ilmaisu- ja korjauskyky d min d min (ilmaisu) [(d min )/2] (korjaus) 2 3 2 4 3 5 4 2 6 5 2 7 6 3 Koodinsuunnittelun tavoite on käyttää redundanssia mahdollisimman suuren minimietäisyyden saavuttamiseksi Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 48 (35) 24

Lohkokoodin taulukkohakudekoodaus Esim. (7,4)-Hamming-koodi oiresana virhesana H T = Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 49 (35) Lohkokoodin taulukkohakudekoodaus jos y = (), niin s = yh T = ( ) = ( ) dekoodaustaulukosta ê = () korjattu sana on xˆ = y + ê = () korjaus Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 5 (35) 25

Lohkokoodin taulukkohakudekoodaus koska taulukkohakudekoodaus on monimutkainen, (jos n k on suuri) käytetään käytännössä erilaisia dekoodausalgoritmeja dekoodaus saadaan yksinkertaiseksi valitsemalla koodi sopivasta koodiperheestä Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 5 (35) Koodiperheiden kehitys Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 52 (35) 26

Hamming-koodit s = yh T = (x + e)h T = eh T Oiresanaan lasketaan mukaan ne H:n sarakkeet (H T :n rivit), joita vastaava virhesanan bitti on ykkönen Etsitään sellaista matriisia H (eli samalla matriisia G), joka korjaa yhden virheen Huom. H:n sarakkeet ovat itse asiassa oiresanoja Jos jokin H:n sarakkeista olisi nollasana, virhettä tuossa paikassa ei voitaisi ilmaista Jos taas kaksi H:n saraketta olisi samanlaisia, virhettä jommassakummassa näistä paikoista ei voitaisi korjata, koska oiresanat olisivat samoja Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 53 (35) Hamming-koodit Johtopäätös: lohkokoodi voi korjata yhden virheen, jos ja vain jos H:n sarakkeet ovat kaikki erilaisia eikä yksikään ole nollasana Hamming-koodit ovat koodeja, joilla H:n sarakkeet (n kpl) muodostavat kaikki mahdolliset (n k):n bitin sekvenssit paitsi nollasekvenssin H on (n k)xn-matriisi, joten Hamming-koodilla n = 2 n k Merkitään m = n k Hamming-koodit ovat siis (2 m,2 m m)-koodeja m = 2,3, Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 54 (35) 27

Hamming-koodit m (n,k) r c = k/n (,) 2 (3,),333 ei koodi 3 (7,4),57 4 (5,),733 5 (3,26),839 6 (63,57),95 koodisuhde kasvaa Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 55 (35) Hamming-koodit Esim. (5,)-koodin pariteetintarkistusmatriisi H = 2 3 4 5 6 7 8 9 2 3 4 5 4 5 jos virhesana on e = (), oiresanaksi tulee s = eh T = () oiresana ilmoittaa tässä tapauksessa suoraan binäärisessä muodossa virheellisen bitin paikan dekoodaus on suoraviivaista Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 56 (35) 28

Hamming-koodit koodi ei ole kuitenkaan systemaattinen systemaattinen muoto saadaan yksinkertaisesti järjestelemällä sarakkeet uudelleen = H 3 5 6 7 9 2 3 4 5 8 4 2 koska Hamming-koodi korjaa yhden virheen, sen minimietäisyyden täytyy olla d min = 3 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 57 (35) Lohkokoodeja Hamming-koodi duaalikoodi Maksimipituuskoodi simplex-koodi lisää pariteettibitti Laajennettu maksimipituuskoodi ortogonaalinen koodi lisää vastakkaiset koodisanat Reed Müller-koodi (r = ) biortogonaalinen koodi Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 58 (35) 29

Sykliset koodit Lineaarinen lohkokoodi on syklinen, jos ja vain jos minkä tahansa koodisanan syklisesti siirretty versio on myös koodisana Syklisten koodien ominaisuuksia: koodaus ja dekoodaus suhteellisen yksinkertaista takaisinkytketyt siirtorekisterit käytössä matemaattinen käsittely polynomialgebraa käyttäen Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 59 (35) Sykliset koodit Esim. (7,4)-Hamming-koodi on syklinen Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 6 (35) 3

3 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 Sykliset koodit Koodisana x = (x n, x n 2,, x ) esitetään koodipolynomin x(d) = x n D n + x n 2 D n 2 + + x D + x avulla Kertoimet x n, x n 2,, x ovat binäärisiä nollia ja ykkösiä 6 (35) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 Sykliset koodit Esim. Hamming-koodi on syklinen (7,4)-koodilla on merk. + + + + + + + + + + + = + + + + + + + + + = D D ) D D(D ) D )(D (D ) D )(D D (D D D D D D D D D D D (D) 3 3 3 2 3 3 3 2 4 2 5 2 6 G = G 62 (35)

Sykliset koodit Kaikki koodipolynomit ovat siis jaollisia polynomilla g(d) = D 3 + D + Tämä polynomi on koodin generoijapolynomi Teoreema syklisen (n,k)-koodin generoijapolynomi g(d) on polynomin D n + tekijä kääntäen: jokainen polynomin D n + tekijä, jonka asteluku on (n k), generoi syklisen (n,k)-koodin Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 63 (35) Sykliset koodit Taulukossa.5 on esitetty polynomin D n + tekijöitä oktaalimuodossa esim. toisella rivillä (n = 9) on 6 = = + D 7 = = + D + D 2 444 = = + D 3 + D 6 huom. järjestys Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 64 (35) 32

Sykliset koodit siten D 9 + = (D + )(D 2 + D + )(D 6 + D 3 + ) (9,8)-koodi (9,7)-koodi (9,3)-koodi mitä muita koodeja on vielä mahdollista muodostaa? Taulukossa.5 on vain parittomia n:n arvoja Jos n = 2m on parillinen, D n + jaetaan ensin tekijöihin D n + = D 2m + =(D m + )(D m + ) ja katsotaan taulukosta polynomin D m + tekijät jos m on parillinen, menetelmää jatketaan, kunnes tullaan parittomaan astelukuun Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 65 (35) Sykliset koodit Taulukosta.5 havaitaan, että polynomin D n + tekijöihin kuuluu aina polynomi D + Tämä polynomi generoi (n,n )-koodin, jossa on vain yksi pariteettibitti (koodisanan pariteetti on aina parillinen), ja koodi on syklinen Tietyillä n:n arvoilla (n = 3, 5,, 3, 9, 29, 37, 53, 59, 6, ) jako tekijöihin on helppo: D n + =(D + )(D n + D n 2 + + D + ) Nämä n:n arvot on jätetty pois taulukosta.5 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 66 (35) 33

Sykliset koodit Esim. n = 3 D 2 + D + D + D 3 + D 3 + D 2 D 2 + D 2 + D D + D + D 3 + = (D + )(D 2 + D + ) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 67 (35) Syklisten koodien koodausalgoritmit koodipolynomin muodostaminen x(d) = D n k u(d) + r(d) r(d) on jakojäännös, kun D n k u(d) jaetaan g(d):llä systemaattinen koodi Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 68 (35) 34

Syklisten koodien koodausalgoritmit x(d) = D n k u(d) + r(d) D 3 u(d) = D 3 (D 3 + D 2 + ) = D 6 + D 5 + D 3 D 3 + D 2 + D + D 3 + D + D 6 + D 5 + D 3 D 6 + D 4 + D 3 D 5 + D 4 D 5 + D 3 + D 2 D 4 + D 3 + D 2 D 4 + D 2 + D x(d) = D 6 + D 5 + D 3 + D 3 + D D 3 + D + D 6 D 5 D 4 D 3 D 2 D D = Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 69 (35) Syklisten koodien koodausalgoritmit x = (), koodi on systemaattinen Syklisen koodin generointi perustuu kertoja- ja jakajapiirien käyttöön Piirit koostuvat yhteenlaskupiireistä, muistielementeistä (kiikkupiireistä) ja vakiolla kertojista Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 7 (35) 35

Syklisten koodien koodausalgoritmit a a modulo-2-summain (XOR-piiri) muistielementti (kiikkupiiri), jonka muistissa binääriluku a (piirin lähtö on siis luku a) vakiolla kertoja (kertoo binääriluvulla a) D Q a a = Q a a = Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 7 (35) Syklisten koodien koodausalgoritmit Esim. Piirrä piiri, joka kertoo polynomilla D n k = D 3 ja jakaa polynomilla g(d) = D 3 + D + lähtö r r r 2 tulo u i 2 3 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 72 (35) 36

Syklisten koodien koodausalgoritmit u i r r r 2 2 3 4 jakojäännös () Tämä piiri muodostaa perustan systemaattisen syklisen (7,4)-koodin generoinnille Piirin etuna on se, että jakojäännös (pariteettibitti) voidaan lukea rekisteristä ulos heti, kun informaatiobitit on luettu sisään Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 73 (35) Syklisten koodien koodausalgoritmit Toiminta kooderina: B A B kanava lähde A A B Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 74 (35) 37

Syklisten koodien koodausalgoritmit Toiminta informaatiobitit luetaan siirtorekisteriin ja samanaikaisesti kanavaan kytkimet asennossa A neljän kellopulssin jälkeen kytkimet siirretään asentoon B ja luetaan pariteettibitit kanavaan huom. takaisinkytkentä täytyy katkaista, jotta pariteettibitit eivät muuttuisi Edellä esitetty kooderi sisältää (n k) muistielementtiä Piiriä voidaan käyttää mille tahansa sykliselle koodille, jonka generoijapolynomi on tunnettu Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 75 (35) Virheen ilmaisu ja korjaus Kanavassa koodipolynomiin x(d) summautuu virhepolynomi e(d), vastaanotettu polynomi on y(d) = x(d) + e(d) Jaetaan vastaanotettu polynomi koodin generoijapolynomilla: y(d) = m(d)g(d) + s(d) y(d) s(d) = m(d) + g(d) g(d) osamäärä jakojäännös y(d) on koodipolynomi, jos ja vain jos polynomi s(d) = Tämä polynomi (asteluku enintään n k ) on y(d):n oirepolynomi Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 76 (35) 38

Virheen ilmaisu ja korjaus Virheen ilmaisu tapahtuu siis jakamalla y(d) generoijapolynomilla g(d) ja tutkimalla, onko jakojäännös eli oirepolynomi s(d) = Virhe on tapahtunut, jos s(d) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 77 (35) Virheen ilmaisu ja korjaus D n k u(d) x(d) y(d) g(d) g(d) s(d) e(d) u G x y H T s generoijamatriisi e pariteetintarkastusmatriisi Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 78 (35) 39

Virheen ilmaisu ja korjaus Esim. generoijapolynomi on g(d) = D 3 + D + vastaanotettu sekvenssi y(d) = D 6 + D 5 + y = () oirepolynomi s(d) =? Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 79 (35) Virheen ilmaisu ja korjaus D 3 + D 2 + D D 3 + D + D 6 + D 5 + D 6 + D 4 + D 3 D 5 + D 4 + D 3 + D 5 + D 3 + D 2 D 4 + D 2 + D 4 + D 2 + D D + = s(d) s 2 s s s = () Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 8 (35) 4

Virheen ilmaisu ja korjaus oiresanan laskeminen (jakajapiiri): 2 3 y s s s 2 s(d) = D + s s s 2 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 8 (35) Virheen ilmaisu ja korjaus y s s s 2 b c lähtö 2 3 4 5 6 7 8 9 2 3 4 xˆ oiresanan laskeminen oiresanan siirtäminen Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 82 (35) 4

Virheen ilmaisu ja korjaus B A s s s 2 & A B c kanava b xˆ Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 83 (35) Virheen ilmaisu ja korjaus toiminta:. luetaan vastaanotettu sana y oiresanageneraattoriin ja puskuriin (kytkimet asennossa A) 2. siirretään kytkimet asentoon B ja siirretään oiresanaa ja puskuria Edellä esitetty dekooderi on ns. Meggit-dekooderi, jota voidaan soveltaa myös useamman virheen korjaamiseen Menetelmää sanotaan myös virheen "vangitsemiseksi" error trapping Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 84 (35) 42

Erityisiä syklisiä koodeja BCH-koodit (Bose-Chaudhuri-Hocquenghem) korjaavat t virhettä generoijapolynomit taulukossa.7 (eniten merkitsevä bitti vasemmalla, päinvastoin kuin aikaisemmassa taulukossa) esim. rivillä 3 m = 4, n = 5, n k = 5 7 = 8, t = 2 72 g(d) = D 8 + D 7 + D 6 + D 4 + Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 85 (35) Erityisiä syklisiä koodeja Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 86 (35) 43

Erityisiä syklisiä koodeja vrt. taulukon.5 mukaan syklisen koodin generoijapolynomit ovat (n = 5) 6 g (D) = + D 7 g 2 (D) = + D + D 2 46 g 3 (D) = + D 3 + D 4 62 g 4 (D) = + D + D 4 76 g 5 (D) = + D + D 2 + D 3 + D 4 BCH-koodin generoijapolynomi on g(d) = g 4 (D)g 5 (D) = (D 4 + D + )(D 4 + D 3 +D 2 + D +) = D 8 + D 7 + D 6 + D 5 + D 4 + D 5 + D 4 + D 3 + D 2 + D + D 4 + D 3 + D 2 + D + = D 8 + D 7 + D 6 + D 4 + Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 87 (35) Erityisiä syklisiä koodeja BCH-koodit ovat tärkeitä käytännössä riittävän yksinkertaiset dekoodausalgoritmit parametriarvot melko vapaasti valittavissa kun n on enintään muutamia satoja, monet BCH-koodeista ovat lähes parhaita mahdollisia koodeja Reed Salomon-koodit ei-binäärisiä BCH-koodeja m bittiä muodostavat symbolin erilaisia symboleita 2 m = q kpl Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 88 (35) 44

Erityisiä syklisiä koodeja n kpl m m m m m m m k kpl n = 2 m symbolia = m (2 m ) bittiä n k = 2t symbolia = 2mt bittiä koodi korjaa t symbolivirhettä (mt bittivirhettä) sopivat hyvin ryöppyvirheiden korjaamiseen käytetään myös ketjukoodien ulkokoodina Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 89 (35) Ryöppyvirheiden ilmaisu ja korjaus Kanava ei ole muistiton, esim. magneettinauha yms., häipyvä kanava, pulssimainen häiriö kanavassa virheet eivät tapahdu toisistaan riippumatta Tällöin satunnaisvirheitä korjaava koodi on tehoton virhetyypit satunnaisvirheet ryöppyvirheet Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 9 (35) 45

Ryöppyvirheiden ilmaisu ja korjaus Eri mahdollisuuksia. ryöppyvirheitä korjaavat koodit sykliset koodit (esim. fire-koodi) ketjukoodit 2. lomittimien käyttö Taulukossa.9 on lueteltu tehokkaita syklisiä ja lyhennettyjä syklisiä koodeja ryöppyvirheiden korjaamiseen Generoijapolynomit ovat oktaalimuodossa, suurinta astelukua vastaava termi vasemmalla Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 9 (35) Ryöppyvirheiden ilmaisu ja korjaus Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 92 (35) 46

Ryöppyvirheiden ilmaisu ja korjaus Esim. taul..9 (3,25)-koodi 6 g(d) = D 6 + D 5 + D 4 + Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 93 (35) Lomittimet kooderi lomitin kanava vastalomitin dekooderi (n,k)-koodi (in,ik)-koodi ryöppyvirheitä (i = lomitteluaste) satunnaisia virheitä Satunnaisvirheitä korjaavaa koodia voidaan käyttää myös kanavassa, jossa syntyy ryöppyvirheitä Virheet on kuitenkin ensin tehtävä satunnaisiksi lomittimen ja vastalomittimen avulla Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 94 (35) 47

Lomittimet Esim. (5,5)-BCH-koodi, t = 3, i = 5 jos lomitteluaste i = 5, saadaan (75,25)-koodi, joka korjaa edelleen 3 satunnaisvirhettä tai virheryöpyn, jonka pituus on enintään it = 5 3 = 5 virhettä On olemassa useita erilaisia tapoja toteuttaa lomittelu lohkolomittelu konvoluutiolomittelu Lomittelua voi esiintyä myös useassa eri tasossa (vrt. esim. CD-levy) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 95 (35) Konvoluutiokoodit Konvoluutiokoodit ovat lineaarisia koodeja, jotka toimivat yleensä vähintään yhtä hyvin kuin lohkokoodit Konvoluutiokoodien koodimatematiikka ei ole niin pitkälle kehittynyt kuin lohkokoodeilla konvoluutiokooderi 2 2 k n muistissa N aikaisempaa lohkoa (n,k )-koodi koodisuhde r c = k /n N = vaikutuspituus (constraint length) v = (N )k = muistin koko n, k ja N pieniä kokonaislukuja Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 96 (35) 48

Konvoluutiokoodit 2 N u 2 k 2 k 2 k x nämä kytkennät määrittelevät konvoluutiokoodin generaattorivektorit 2 n Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 97 (35) Konvoluutiokoodit Kooderi ottaa aina sisään k bittiä ja laskee N:n lohkon avulla n bittiä Lohkokoodilla vaikutuspituus N = konvoluutiokoodit lohkokoodit N > N = Lohkokoodi on siis konvoluutiokoodin rajatapaus Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 98 (35) 49

Konvoluutiokoodit Esim. (3,)-koodi, vaikutuspituus N = 3 u x kommutaattori (korvaa toisen siirtorekisterin) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 99 (35) Konvoluutiokoodit Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 (35) 5

Konvoluutiokoodit Esim. (3,)-koodi, N = 3 u generaattorivektorit: g = () g 2 = () g 3 = () k N kpl n kpl x Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 (35) Konvoluutiokooderin toiminnan esittäminen Konvoluutiokooderia voidaan pitää koneena, jolla on äärellinen määrä sisäisiä tiloja FSM = finite-state-machine Kooderin toimintaa voidaan kuvata usealla tavalla tiladiagrammi trellisdiagrammi puudiagrammi Kaikki nämä esitystavat sisältävät saman tiedon kooderin toiminnasta Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 2 (35) 5

Konvoluutiokooderin toiminnan esittäminen Usein käyttökelpoisin esitystapa on trellisdiagrammi, jossa puudiagrammin jaksollisuus on otettu huomioon jaksollisuus johtuu äärellisestä muistista Esim. (3,)-koodi, N = 3 u u l u l u l 2 muistin pituus v = N = 2 x Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 3 (35) Konvoluutiokooderin toiminnan esittäminen merk. kooderin tila hetkellä l on muistin sisältö tuolla hetkellä σ l (u l, u l 2 ) erilaisia tiloja on 2 v = 4 kpl:,,, jos esim. kooderi on tilassa ja tulobitti on, lähtöbiteiksi tulevat ja seuraava tila on Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 4 (35) 52

Konvoluutiokooderin toiminnan esittäminen Täydellinen tiladiagrammi on seuraava: S S = () S 2 = () S 3 = () S 4 = () S 3 S 2 esimerkkisiirtymä S 4 katkoviiva vastaa tulobittiä jatkuva viiva vastaa tulobittiä Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 5 (35) Konvoluutiokooderin toiminnan esittäminen alussa ollaan tilassa S = () jos esim. u = ( ), niin tilakaavion mukaan x = ( ) ja kooderi käy tiloissa S S 3 S 4 S 2 S 3 S 4 tätä kooderin tilasekvenssiä sanotaan poluksi Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 6 (35) 53

Konvoluutiokooderin toiminnan esittäminen muistin pituuden kasvaessa tiladiagrammin koko kasvaa eksponentiaalisesti ja muodostuu vaikeaksi käsitellä Trellisdiagrammi on tiladiagrammi, jossa aika esitetään eksplisiittisesti S S 3 S 2 S 4 l = l = l = 2 l = 3 l = 4 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 7 (35) Konvoluutiokooderin toiminnan esittäminen Luku l ilmoittaa, kuinka syvällä trellisdiagrammissa ollaan menossa Tulosekvenssiä vastaa jokin polku trellisdiagrammissa Tätä polkua vastaavat koodatut bitit voidaan lukea diagrammista Esim. u = ( ), x = ( ), tilasekvenssi (polku): S S 3 S 4 S 2 S 3 S 4 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 8 (35) 54

Konvoluutiokooderin toiminnan esittäminen Puudiagrammi vastaa trellisdiagrammia, mutta puudiagrammissa haarautuminen jatkuu loputtomasti (kuva.8) Puudiagrammin osia ovat solmut ja haarat Solmut vastaavat tiladiagrammin tiloja Haarat vastaavat tilasiirtymiä solmu haara Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 9 (35) Konvoluutiokooderin toiminnan esittäminen Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 (35) 55

Konvoluutiokooderin toiminnan esittäminen Trellisdiagrammi on puudiagrammi, jossa samaa tilaa vastaavat solmut on yhdistetty puudiagrammi trellisdiagrammi tiladiagrammi yhdistä samaa tilaa vastaavat solmut esitä aika vain implisiittisesti Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 (35) Konvoluutiokoodien etäisyysominaisuudet Myös konvoluutiokoodin suorituskyvyn määräävät koodattujen sekvenssien etäisyysominaisuudet Kovassa päätöksenteossa merkitystä on Hammingetäisyyksillä Koska konvoluutikoodit ovat lineaarisia, etäisyysjakauma on sama riippumatta siitä, mikä sekvenssi on koodattu Suurin merkitys on koodin vapaalla etäisyydellä, joka on kahden äärettömän pitkän koodatun sekvenssin pienin Hamming-etäisyys Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 2 (35) 56

Parhaat konvoluutiokoodit Konvoluutiokoodi on optimaalinen, jos sen vapaa etäisyys on mahdollisimman suuri, kun koodisuhde k /n ja vaikutuspituus N on annettu Optimaalisia koodeja on etsittävä tietokoneen avulla (taulukot.2.7) Esim. taul..2, N = 4, koodisuhde /2 5 g = () 7 g 2 = () u x Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 3 (35) Parhaat konvoluutiokoodit Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 4 (35) 57

Parhaat konvoluutiokoodit Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 5 (35) Parhaat konvoluutiokoodit Taul..6, N = v = 3, koodisuhde 2/3 Siirtofunktiomatriisi, jossa g i,j on generaattorivektori g G = gk,,...... g g, n k, n g = g, 2, g g,2 2,2 g g,3 2,3 3 = 4 2 2 7 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 6 (35) 58

Parhaat konvoluutiokoodit 3 G = Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 7 (35) Punkturointi Käyttämällä ns. punkturoituja konvoluutiokoodeja (punctured convolutional codes) voidaan pienentää monimutkaisuuden kasvua, joka seuraa, kun siirrytään käyttämään koodisuhteen k /n koodeja suhteen /n :n sijasta Koodisuhteen k /n punkturoitu konvoluutiokoodi voidaan siis muodostaa koodisuhteen /n koodista ( äitikoodi ) poistamalla pariteetintarkastusbittejä sopivasti Optimoituja punkturoituja koodeja löytyy taulukoituna vapaa etäisyys on maksimoitu Punkturoinnin haittapuolia ovat ainakin: punkturoidujen koodien etäisyysominaisuudet ovat yleensä hiukan huonommat kuin vastaavan suhteen punkturoimattomilla koodeilla dekooderissa tarvitaan tarkka kehyssynkronointi, koska punkturoidun koodin trelliskaavio vaihtelee periodilla k Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 8 (35) 59

Punkturointi Esim. Kuvassa.4 on 4-tilainen konvoluutiokooderi, jonka tuottaman koodin koodisuhde on /2 Jos u = ( ) x = ( ) Punkturoidaan joka neljäs pariteettibitti Saadaan koodisuhteeksi 2/3 Jos u = ( ) x = ( ) Suurempia koodisuhteita saadaan aikaan kasvattamalla punkturoitavien pariteettibittien lukumäärää Edellä saatu punkturoitu koodi on sama kuin kuvassa.5 olevalla rakenteella ilman punkturointia saatava koodi, jossa yksi trellisdiagrammin väli vastaa kahta väliä punkturoidun koodin trellisdiagrammissa Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 9 (35) Punkturointi Jos u = ( ) x = ( ) Jos u = ( ) x = ( ) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 2 (35) 6

Viterbi-algoritmi Konvoluutiokoodin ML-dekooderi: Viterbi-algoritmi Viterbi-algoritmin idea käy ilmi parhaiten esimerkin avulla (kooderi kalvolla 3, tiladiagrammi kalvolla 5 ja trellisdiagrammi kalvolla 7) esim. lähetetty sekvenssi on trellisdiagrammista voidaan lukea, että koodattu sekvenssi on oletetaan, että vastaanotettu sekvenssi on tätä sekvenssiä ei löydy trellisdiagrammista, joten on käytettävä päätössääntöä (algoritmin toiminta seuraavilla sivuilla) Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 2 (35) Konvoluutiokoodin ML-dekooderi: Viterbi-algoritmi u u l u l u l 2 S S S 3 x S 3 S 2 S 2 S 4 l = l = l = 2 l = 3 l = 4 S 4 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 22 (35) 6

Konvoluutiokoodin ML-dekooderi: Viterbi-algoritmi l = 2 3 4 5 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 23 (35) Konvoluutiokoodin ML-dekooderi: Viterbi-algoritmi 5 2 Jokaiseen tilaan tulee vain yksi sekvenssi (etäisyydet merkitty) 2 3 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 24 (35) 62

Konvoluutiokoodin ML-dekooderi: Viterbi-algoritmi 5 2 2 3 7 X X 3 6 4 2 X 4 X 5 5 Jokaiseen tilaan tulee kaksi sekvenssiä hylätään kauempana oleva (jos kumpikin samalla etäisyydellä: arvotaan tai valitaan aina esim. alempi sekvenssi). Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 25 (35) Konvoluutiokoodin ML-dekooderi: Viterbi-algoritmi 3 4 2 5 4 X 2 5 5 X 5 X 7 X 6 6 Tutkitaan vain edellisessä vaiheessa jäljelle jääneiden sekvenssien jatkeita. Jokaiseen tilaan tulee taas kaksi sekvenssiä, joista hylätään kauempana oleva (tarvittaessa arvonta). Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 26 (35) 63

Konvoluutiokoodin ML-dekooderi: Viterbi-algoritmi 2 5 2 6 X 5 7 X Sama jatkuu 5 6 X X 7 7 6 7 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 27 (35) Konvoluutiokoodin ML-dekooderi: Viterbi-algoritmi 2 5 2 8 X 5 9 X 7 6 X X 7 7 6 8 Tässä vaiheessa jäljellejääneiden polkujen alkupäät ovat identtisiä ja voidaan tehdä bittipäätöksiä: Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 28 (35) 64

Konvoluutiokoodin ML-dekooderi: Viterbi-algoritmi 2 5 2 8 X 5 9 X 7 6 X X 7 7 6 8 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 29 (35) Konvoluutiokoodin ML-dekooderi: Viterbi-algoritmi näin jatketaan aina kun alkupäässä tapahtuu polkujen yhtymistä, voidaan tehdä bittipäätöksiä lopussa valitaan päätökseksi se sekvenssi neljästä jäljellä olevasta, joka on Hammnig-etäisyydeltään kaikkein lähimpänä tulokseksi tulee päätös ja alussa olleet kaksi virhettä ovat tulleet korjatuiksi Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 3 (35) 65

Konvoluutiokoodin ML-dekooderi: Viterbi-algoritmi Viterbi-algoritmi perustuu kahteen ajatukseen:. etäisyydet lasketaan rekursiivisesti summaamalla edelliseen etäisyyteen polun jatkeen etäisyys esim. 282 82 A B C 3 etäisyys A B 282 A C 282 + 82 = 464 A D 464 + 3 = 594 D 2. jokaisessa vaiheessa hylätään samaan tilaan tulevista sekvensseistä kauempana olevat Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 3 (35) Konvoluutiokoodin ML-dekooderi: Viterbi-algoritmi C A 282 B 82 3 X 285 24 D F E etäisyys A B C D on 594 etäisyys A B E D on 88 (hylätään) seuraavassa vaiheessa tutkittavaksi jäävät sekvenssit ovat edellisessä vaiheessa jäljelle jääneiden sekvenssien jatkeita Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 32 (35) 66

Koodien käytännön sovelluksia A brief Overview of the GSM Radio Interface Thierry Turletti The Eurepean Digital Audio Broadcasting (DAB) punkturoitu konvoluutiokoodi (äitikoodi: r c = /4, N = 7) koodisuhde vaihtelee 8/9 /4 lomittelua sekä aika että taajuustasossa Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 33 (35) Koodien käytännön sovelluksia The Eurepean Digital Video Broadcasting (DVB) ulkokoodina (24,88) RS-koodi, lyhennetty koodista (255,239) konvoluutiolomittelu sisäkoodina (2,,7)-konvoluutiokoodi, jota voidaan punkturoida koodisuhteille 7/8 /2 IEEE 82. (LAN standardi) punkturoitu konvoluutiokoodi äitikoodi (2,,7) koodisuuhteet 3/4 ja 2/3 Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 34 (35) 67

Koodien käytännön sovelluksia Compact disc (CD) digital audio system CIRC (cross-interleave Reed-Solomon code) 3 lomittelutasoa, 2 RS-koodia sisäkoodina (32,28) ja ulkokoodina (28,24) CD-levyyn voi porata 8 mm reikiä ilman haittaa Virheenkorjaus selviää n. 4 bitistä = 2,5 mm levyllä Lähes kaikki uudet sotilastiedonsiirtojärjestelmät, kuten JTIDS (Joint Tactical Information Distribution System) JRSC (Jam Resistant Secure Communications) DSCS (Defense Satellite Communications System) Costello: Applications of Error-Control Coding Jacobsmeyer: Introduction to Error-Control Coding Langattomien tietoliikennejärjestelmien perusteet: Kanavakoodaus Timo Kokkonen Kevät 29 35 (35) 68