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

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

esimerkkejä erilaisista lohkokoodeista

VIRHEENKORJAUS JA -ILMAISU

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

JATKUVAN AWGN-KANAVAN KAPASITEETTI SHANNON-HARTLEY -LAKI

Koodausteoria, Kesä 2014

VIRHEENKORJAUS JA -ILMAISU

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

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

Koodausteoria, Kesä 2014

SYMBOLIVIRHETODENNÄKÖISYYDESTÄ BITTIVIRHETODENNÄKÖISYYTEEN

Algebralliset menetelmät virheenkorjauskoodin tunnistamisessa

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

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

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

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

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

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

SIGNAALITEORIAN JATKOKURSSI 2003

Koodausteoria, Kesä 2014

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

ELEC-C7230 Tietoliikenteen siirtomenetelmät

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

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

TIIVISTELMÄRAPORTTI. Virheenkorjauskoodien tunnistus signaalitiedustelussa

Laajennetut Preparata-koodit

Suodatus ja näytteistys, kertaus

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Signaalien generointi

LUKU 6 TÄRKEIMPIEN ASIOIDEN KERTAUS

Ohjelmistoradio tehtävät 4. P1: Ekvalisointi ja demodulaatio. OFDM-symbolien generoiminen

puheen laatu kärsii koodauksesta mahdollisimman vähän. puhe pakkautuu mahdollisimman pieneen määrään bittejä.

Digitaalinen tiedonsiirto ja siirtotiet. OSI-kerrokset

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

TLT-5400 DIGITAALINEN SIIRTOTEKNIIKKA

LUKU 7 TÄRKEIMPIEN ASIOIDEN KERTAUS A Tietoliikennetekniikka I Osa 30 Kari Kärkkäinen Kevät 2015

WIMAX-järjestelmien suorituskyvyn tutkiminen

Signaalinkäsittely ADSL:ssä Markku Kilpinen, 48166B Maija Pohjanpelto-Rosén, 48271N

1. Yleistä asiaa tietoliikenneyhteyden toiminnasta.

521361A TIETOLIIKENNETEKNIIKKA II

7.4 Sormenjälkitekniikka

KOODAUSTEORIA S

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

521330A TIETOLIIKENNETEKNIIKKA KURSSI ANALOGISEN JA DIGITAALISEN TIEDONSIIRRON TEORIASTA JA TOTEUTUSMENETELMISTÄ

VAIHEKOHERENTIT BINÄÄRISET KANTOAALTOMODULAATIOT JA NIIDEN VIRHETODENNÄKÖISYYDET

SISÄLLYS - DIGITAALITEKNIIKKA

Shannonin ensimmäinen lause

Koodausteoria, Kesä 2014

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

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

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

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

Digitaalitekniikan matematiikka Luku 1 Sivu 1 (19) Johdatus digitaalitekniikkaan

521330A TIETOLIIKENNETEKNIIKKA

3. laskuharjoituskierros, vko 6, ratkaisut

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

Johdatus matematiikkaan - tarinaosasto Tero Kilpeläinen

TIIVISTELMÄRAPORTTI. Algebralliset menetelmät virheenkorjauskoodin tunnistuksessa

Informaatioteoria. Lasse Holmström Sovelletun matematiikan ja tilastotieteen yksikkö Oulun yliopisto. Kevät f f. f f

Digitaalinen tiedonsiirto ja siirtotiet

Tehtävä 2: Tietoliikenneprotokolla

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

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

KOODAUS- JA INFORMAATIOTEORIA. Keijo Ruohonen

Korkean resoluution ja suuren kuva-alueen SAR

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

T DSP: GSM codec

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

T Verkkomedian perusteet. Tietoliikennekäsitteitä Tiedonsiirron perusteet

Algoritmit 2. Luento 9 Ti Timo Männikkö

Radioamatöörikurssi 2017

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

S Tietoliikennetekniikan perusteet. Jukka Manner Teknillinen korkeakoulu

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

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

Dynaamiset regressiomallit

Helsinki University of Technology Laboratory of Telecommunications Technology

Laskuharjoitus 5. Mitkä ovat kuvan 1 kanavien kapasiteetit? Kuva 1: Kaksi kanavaa. p/(1 p) ) bittiä lähetystä kohti. Voidaan

Signaalien datamuunnokset. Digitaalitekniikan edut

Signaalien datamuunnokset

Ortogonaaliprojektio äärellisulotteiselle aliavaruudelle

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Kombinatorinen optimointi

LAINAUSJÄRJESTELMÄ. Kyllä. Vihermetsän lukion kirjastossa on samankaltainen, mutta monimutkaisempi lainausjärjestelmä:

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Kanta ja dimensio 1 / 23

Algoritmit 1. Luento 12 Ti Timo Männikkö

Informaatioteoria. Lasse Holmström Matemaattisten tieteiden laitos Oulun yliopisto. Kevät f f. f f

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Kenguru Student (lukion 2. ja 3. vuosi) sivu 1 / 6

Odotusarvoparien vertailu. Vilkkumaa / Kuusinen 1

Reedin ja Solomonin koodit Katariina Huttunen

Vektorien virittämä aliavaruus

Algoritmit 2. Luento 10 To Timo Männikkö

MATEMATIIKKA 5 VIIKKOTUNTIA. PÄIVÄMÄÄRÄ: 8. kesäkuuta 2009

Transkriptio:

1 JOHDANTO VIRHEENKORJAAVAAN KOODAUKSEEN KANAVAKOODAUSMENETELMÄT

RESURSSIEN VÄLINEN KAUPANKÄYNTI 2 LÄHETYSTEHO KAISTANLEVEYS MONIMUTKAISUUS VIRHETODEN- NÄKÖISYYS

RESURSSIEN VÄLINEN KAUPANKÄYNTI 3 Resurssien käyttöä pyritään optimoimaan mm. koodaus- ja modulointimenetelmien valinnalla. Tavoitteet ovat usein ristiriitaisia. Lähetystehon pienentäminen pienentää lähettimen kokoa, mutta P E kasvaa, ellei kaistanleveyttä tai käytetyn koodaus- tai modulaatiomenetelmän monimutkaisuutta lisätä. Jotkut järjestelmät ovat sekä kaista- että tehorajoitettuja. Lähetysteho Signaali-kohinasuhde Monimutkaisuus KOODAUS MODULOINTI KANAVA DEKOODAUS DEMODULOINTI Monimutkaisuus Kaistanleveys Virhetodennäköisyys

KOODAUKSEN JA MODULAATION SUHDE 4 DIGITAALISET SIIRTOJÄRJESTELMÄT TEHORAJOITETUT JÄRJESTELMÄT SEKÄ TEHO- ETTÄ KAISTARAJOITETUT JÄRJESTELMÄT KAISTARAJOITETUT JÄRJESTELMÄT Signaalit kaukana toisistaan (kaistanleveys kasvaa, tarvitaan vähän lähetystehoa) Esim. Ortogonaaliset aaltomuodot MFSK, M>2 Esim. virheenkorjaava FEC koodaus (lohko- ja konvoluutiokoodit) YHDISTETTY KOODAUS JA MODULAATIO Esim. Trelliskoodattu modulaatio TCM Signaalit lähellä toisiaan signaaliavaruudessa (P E kasvaa, joten sen kompensoimiseksi tarvitaan lisää lähetystehoa) Esim. ASK & PSK-mod. yhdistelmä QAM = Quadrature Amplitude Modulation

VIRHEENKORJAAVA KANAVAKOODAUS 5 Perustuu systemaattisen redundanssin (pariteettibittien) lisäämiseen (lähteenkoodauksessa poistettiin epäsystemaattista redundanssia). Redundanssia käytetään virheiden paikantamiseen ja korjaamiseen. Redundanssi generoi muistiominaisuuden (matemaattisen kytkennän) bittien välille. Bittivirhe voidaan ilmaista ja mahdollisesti korjata, jos virheiden lukumäärä on koodin korjauskyvyn sisällä. Kanavakoodauksen suorituskyky muistuttaa aaltomuotoihin perustuvan ortogonaalisen MFSK -modulaation suorituskykyä, mutta tarvittava kaistanleveys on yleensä pienempi ja tarvittava ilmaisin yksinkertaisempi (koodin dekoodaus helppoa).

VIRHEENKORJAAVA KANAVAKOODAUS 6 Kaksi kanavakoodauksen toteutusperiaatetta: FEC (Forward Error Correction): ilmaistaan virheet ja korjataan, jos pystytään. Käytössä tehorajoitetuissa järjestelmissä. Reaaliaikainen toiminta (esim. puheen siirto). Ei tarvita paluukanavaa. ARQ (Automatic Repeat Request): ilmaistaan virheet ja pyydetään paluukanavalla virheellisen lohkon uudelleenlähetystä. Käytössä sekä teho- että kaistarajoitetuissa järjestelmissä. Toiminta ei ole reaaliaikainen, mikä rajoittaa käyttöä (soveltuu datapakettine siirtoon). Tarvitaan virheen ilmaiseva koodi. Ongelmana on paluukanavan järjestäminen.

FEC & ARQ -MENETELMIEN ERO 7 FEC käytössä tehorajoitetuissa järjestelmissä. ARQ soveltuu sekä teho- että kaistarajoitettuihin järjestelmiin. ARQ:ssa kuittaus: ACK, NAK = negative acknowledgement. KOODERI KANAVA FEC Virheenkorjaus KOODERI KANAVA ARQ PALUU- KANAVA ACK, NAK

ARQ-MENETELMÄN TOTEUTUSVAIHTOEHTOJA (S) 8

VIRHEEN KORJAAVIEN KOODIEN LUOKITTELU 9 Virheenkorjaavat koodit voidaan jakaa kahteen perusluokkaan: Lohkokoodit: informaatiota käsitellään lohkoittain. k-pituisen bittilohkon loppuun liitetään n k kpl pariteettibittejä, jolloin koodattu sana on n bittiä pitkä. Pariteettibitit lasketaan vain samaan lohkoon kuuluvien informaatiobittien perusteella. Redundanssin määrää kuvaa koodisuhde k/n. Konvoluutiokoodit (trelliskoodit tai puukoodit): kooderilla muistiominaisuus, eli pariteettibitteihin vaikuttavat useamman K:n peräkkäisen tulevan k-bitin lohkon informaatiobitit. Muistin pituus K on ns. vaikutuspituus (constraint length). Vaikka konvoluutiokoodaus on jatkuva prosessi, voidaan edelleenkin määritellä redundanssin määrää ja siten kaistan käytön tehokkuutta kuvaava koodisuhde k/n. 1 k KONVOLUUTIO- KOODERI 1 n Muistissa K 1 aikaisempaa lohkoa

VIRHEENKORJAAVIEN KOODIEN LUOKITTELU 10 Lohkokoodit voidaan nähdä konvoluutiokoodien erikoistapauksena, kun konvoluutiokoodin muistinpituus on yksi lohko (K = 1). KONVOLUUTIOKOODIT K > 1 LOHKOKOODIT K = 1

VIRHEENKORJAAVIEN KOODIEN LUOKITTELU 11 1 2 Lohkokoodi K n n n n n Konvoluutiokoodi K n kpl Konvoluutiokoodi on toisaalta lohkokoodin erikoistapaus, sillä konvoluutiokoodi on lohkokoodi, jossa lohkoja on vain yksi. Kyseisen tulkinnan mukaan myös konvoluutiokoodeille voidaan löytää ns. generoijamatriisi, vaikkakin sen käyttö on laskennallisesti hankalaa konvoluutiokoodien tapauksessa. Generoijamatriisin käsite esitellään myöhemmin lohkokoodien yhteydessä.

LOHKOKOODAUS PERIAATEKUVA 12 n bitin koodilohko n bitin koodilohko n bitin koodilohko k informaatiobittiä (n k) pariteettibittiä k informaatiobittiä (n k) pariteettibittiä k informaatiobittiä (n k) pariteettibittiä koodaus Lineaarisesta lohkokoodista käytetään merkintää: (n,k) -koodi, jossa n on koodatun sanan pituus ja k on informaatiobittien määrä. Pariteettibittejä on (n k) kpl. Koodisuhde k/n kuvaa informaatiobittien suhteellista osuutta kaikista lähetetyistä biteistä. Kooderi tuottaa 2 k kpl laillisia koodisanoja. Erilaisia vastaanotettuja sanoja 2 n >> 2 k kpl, virheellisiä sanoja 2 n 2 k kpl. Dekoodaus tapahtuu kahdessa vaiheessa: virheellinen lohko ilmaistaan, jonka jälkeen virheet korjataan, jos pystytään. Jotta dekooderi toimisi oikein, on kanavan dekoodamattoman virhesuhteen yleensä oltava: P E 10 2. Koodausvahvistus on saavutettava etu SNR-arvossa. koodaus koodaus

KOODAUSVAHVISTUS 13 Koodausvahvistus riippuu kiinnitetystä P E -arvosta ja se on suurempi pienillä P E -arvoilla. Kuvassa koodausvahvistus on 14 9 = 5 db, kun P E = 10 6. Modulaatiomenetelmän aikaansaama P E liian suuri (>10 2 ) ennen virheenkorjaavaa dekooderia, joka siksi generoi dekoodauksessa vain lisää virheitä, ja kasvattaa siten edelleen lopullista virhetodennäköisyyttä pienillä modulaation E B /N 0 arvoilla aiheutuu käyrien risteäminen. Koodausvahvistus 5 db, kun P B = 10-6 Vahvistus riippuu aina toimintapisteestä.

KONVOLUUTIOKOODAUS PERIAATEKUVA 14 Nuolet yrittävät piirtoteknisistä ongelmista huolimatta kuvata lohkojen vaikutusta seuraaviin lohkoihin (muistiominaisuutta). n bitin koodilohko n bitin koodilohko n bitin koodilohko n bitin koodilohko k informaatiobittiä (n k) pariteettibittiä k informaatiobittiä (n k) pariteettibittiä k informaatiobittiä (n k) pariteettibittiä k informaatiobittiä (n k) pariteettibittiä

YLEINEN KONVOLUUTIOKOODERI 15 Bittejä käsitellään k-bitin lohkoissa. Muistissa on kerrallaan K kpl (vaikutuspituus) k:n bitin lohkoja. Jokaisen k-lohkon tullessa sisään lähdöstä luetaan n koodattua bittejä. Lohkojen tullessa sisään siirtyy rekisterin sisältö k bittiä eteenpäin. Rekisterin muisti K k bittiä.

LOHKOKOODIT VS. KONVOLUUTIOKOODIT 16 Lohkokoodeilla on kehittynyt algebrallinen koodausteoria, joka perustuu äärellisten kuntien (finite fields) matematiikkaan. Koodaus- ja informaatioteoria ovat olleet hyvin läheisessä vuorovaikutuksessa jo 1950-luvulta lähtien. Richard W. Hamming (KT) ja Claude Shannon (IT) alan pioneereja Bellin laboratoriossa. Avaruustutkimus edisti koodauksen tutkimusta (esim. luotaimen pieni lähetysteho oli kompensoitava tehokkaalla koodauksella). Lohkokoodeja on kehitetty runsaasti (haastava tutkimusalue matemaatikoille). Niitä tosin käytetään paljon vähemmän kuin konvoluutiokoodeja, joille on löydettävissä tehokkaita prosessorilla toteutettavia dekoodausmenetelmiä (Viterbi-algoritmi). Löydettyjen tunnettujen lohkokoodien määrä on paljon suurempi kuin käytettävien määrä (esim. dekooderin toteutus monilla hankalaa). Konvoluutiokoodeilla on puolestaan vähemmän kehittynyt teoria, koska ne ovat matemaattisesti hankalammin käsiteltävissä. Niitä on haettu kokeellisesti tietokoneilla. Ovat monella tavalla hyviä (mm. Yksinkertainen kooderi, Viterbi-dekoodaus, suuri koodausvahvistus).

LOHKOKOODIT VS. KONVOLUUTIOKOODIT 17 Siirtorekisteritoteutuksessa lohkokoodissa koko 3 bitin lohko tulee kerralla sisälle, jonka jälkeen luetaan sisälle uusi 3 infobitin lohko. Konvoluutiokoodissa kerralla sisään tulevien bittien lukumäärä k K.

SATUNNAISVIRHEET VS. RYÖPPYVIRHEET 18 Virheenkorjaavat koodit voivat olla joko binäärisiä tai symbolikoodeja (ei-binäärisiä). Eniten käytetään binäärisiä koodeja. Symbolikoodeja ovat mm. Reed-Solomon-koodit, jotka lukeutuvat lineaarisiin lohkokoodeihin. Koodin korjauskyvyn kannalta ei ole merkitystä sillä syntyvätkö bittitai symbolivirheet informaatiobitteihin vai pariteettibitteihin! Binääriset lohko- ja konvoluutiokoodit korjaavat hyvin satunnaisvirheitä, ts. koodatun jonon peräkkäisten bittien oletetaan muuttuvan kanavassa toisistaan riippumattomasti ja samalla todennäköisyydellä kohinan, häirinnän, muiden käyttäjien aiheuttaman interferenssin, tms. seurauksena. Käytännössä bittivirheet esiintyvät satunnaisuuden sijasta virheryöppyinä (purskeina), esimerkiksi häipyvässä ja ISImonitiekanavassa. Siksi joudutaan käyttämään lähetettävien koodisanojen lomittelua (interleaving) virheiden satunnaistamiseksi.

RYÖPPYVIRHEIDEN LOMITTELU 19 T H E Y M U S T H E A R T H I S Perusidea yksinkertainen. Lähetetään viestin: THEY MUST HEAR THIS kirjaimet eri järjestyksessä, jolloin peräkkäisiin kirjaamiin kohdistuva virheryöppy jakaantuu pitemmälle aikavälille ja koodikielen redundanssiin perustuen viesti voidaan dekoodata. Kanavaan TMHT HUEH ESAI YTRS THXY MUXT HEXR THXS

RYÖPPYVIRHEIDEN LOMITTELU 20 Lomittelija laittaa peräkkäiset jo koodatut bitit eri järjestykseen jolloin peräkkäiset infobitit jakaantuvat pitemmälle aikavälille lähetystä varten. Virheryöppy jakaantuu vastalomittelijan jälkeen ennen dekooderia pitemmälle aikavälille usean koodilohkon yli, jotta satunnaisvirheitä korjaavat koodit pystyvät ne mahdollisesti korjaamaan.

RYÖPPYVIRHEIDEN LOMITTELU 21 Lomittelu tapahtuu vasta kanavakoodauksen jälkeen. Ilmaisussa suoritetaan vastalomittelu ennen bittivirheiden ilmaisua ja korjaamista, jotta informaatiobitit olisivat oikeassa järjestyksessä dekooderin lähdössä. Lomittelutaulukko kuvaa lomittelijan toimintaa. Lomittelusyvyys kuvaa lomittelutaulukon kokoa, ts. montako peräkkäistä lohkoa luetaan kerrallaan ennen seuraavaa taulukon uudellentäyttöä. Taulukon koon valintaan vaikuttaa mm. reaaliaikaisuusvaatimus (puhe, kontrollikanavat ja -bitit, tehonsäätöbitit, jne.). Usein järjestelmissä (esim. puheen ja videon siirto) on myös eri tärkeysluokan bittejä, jolloin niiden merkityksen mukaan saatetaan suorittaa korjauskyvyltään erilaista koodausta eri bittilohkoille.

RYÖPPYVIRHEIDEN LOMITTELUTAULUKKO 22 Lomitellut bitit sarakkeittain ulos modulaattorille ja kanavaan. Koodatut sanat tulevat riveittäin sisään lomittelijalle.

KETJUKOODAUS 23 Ketjukoodauksella (concatenated coding) tarkoitetaan yhdistettyä koodausta. Esim. kaksi peräkkäistä koodausta: sisäkoodaus ja ulkokoodaus, eli koodataan kertaalleen koodatut bitit/symbolit. Sisä- ja ulkokoodausmenetelmien ei tarvitse olla samoja. Tyypillisesti sisäkoodi on satunnaisvirheitä hyvin korjaava konvoluutiokoodi ja ulkokoodina on hyvin ryöppyvirheitä korjaava ei-binäärinen Reed- Solomon lohkokoodi.

KETJUKOODAUS & LOMITTELU 24 Ketjukoodauksella pyritään parantamaan virheensietokykyä, eli siirtämään koodatun järjestelmän P E -käyrää mahdollisimman lähelle Shannonin 1,6 db:n vesiputousrajaa. Ketjukoodauksenkin yhteydessä kannattaa käyttää myös lomittelua.

25 LOHKOKOODIEN KOODIAVARUUS JA KORJAUSKYKY Mitä peruskäsitteitä liittyy lohkokoodaukseen?

HAMMING-PAINO & -ETÄISYYS & MINIMIETÄISYYS 26 Koodaukseen liittyvät käsitteet: Hamming-paino (HW): sanan [1100100] Hamming-paino on {1}-bittien lukumäärän mukaan 3. Hamming-etäisyys (HE): Sanojen [1100100] ja [1100010] Hammingetäisyys on eroavien bittien lukumäärä sanojen välillä, eli 2. Etäisyys saadaan sanojen modulo-2 (XOR) summan Hamming-painon perusteella: [1100100] [1100010] = [0000110] paino 2 Lohkokoodin minimietäisyys on kaikkien sallittujen koodisanojen välisten Hamming -etäisyyksien pienin mahdollinen arvo Minimietäisyydestä riippuu virheenkorjauskyky: t = (d min 1)/2. Esim. koodi pystyy korjaamaan yhden virheen (t = 1), jos minimietäisyys d min = 3. Jos d min = 5 t = 2, ja d min = 7 t = 3 k-infobitin lohkosta matemaattisella koodausalgoritmilla laskettavien sallittujen n-pituisten lohkokoodien joukkoa kutsutaan koodausteoriassa koodiksi!

KOODIAVARUUDEN KOKO 27 Virheen korjaavan lohkokoodin sallittujen sanojen lukumäärä on V k, missä: V = lukujärjestelmän kantaluku k = informaatiobittien lkm koodisanassa Laillisten koodisanojen määrä on paljon pienempi kuin kaikkien mahdollisten n-pituisten sanojen määrä koodiavaruudessa. n-pituisia V-tilaisia mahdollisia sanoja on V n kpl esim. V = 2 ja n = 6, niin koko koodiavaruuden koko eli kaikkien mahdollisten sanojen määrä ko. pituudella on 2 6 = 64 2 128 = 3.4 10 38, 2 512 = 1.3 10 154, vrt. maailmankaikkeudessa arviolta noin 10 80 atomia! Virheellisesti vastaanotettuja mahdollisia sanoja: V n V k kpl, jotka vastaanotossa pyritään dekoodaamaan laillisiksi koodisanoiksi.

HAMMING-ETÄISYYS JA VIRHEENKORJAUSKYKY 28 Koodivektori x i lähetetty ja y = x i + e vastaanotettu. Virhevektorin e Hamming-paino HW(e) t. Olkoon x j joku muu laillinen koodisana. Kaksi t-säteistä ympyrää eivät leikkaa n-dim. koodiavaruudessa, jos sen sallittujen koodien välinen HE: d(x i,x j ) = w(x i x j ) 2t+1. Jos x i on lähetetty ja d(x i,y) t, niin y on yksikäsitteisesti lähempänä x i -vektoria kuin x j -vektoria. Jos sana y on pahoin virheellinen - HW(e) > t - se saattaa sijoittua pallojen väliin, eikä voida korjata, koska se ylittää peittosäteen t. Jos laillisten sanojen etäisyys d(x i,x j ) < 2t, niin tuolloin ei voida tehdä yksikäsitteistä dekoodausta sanasta y kummankaan laillisen sanan hyväksi (y kuuluu sekä x i :n että x j :n peittosäteen sisään).

HAMMING-ETÄISYYS JA VIRHEENKORJAUSKYKY Edellisen perusteella lineaarinen (n,k) -lohkokoodi kykenee siis korjaamaan kaikki korkeintaan t -painoiset virhesanat e, jos ja vain jos minimietäisyys d min = d(x i,x j ) 2t + 1 kaikilla x i ja x j. Sama toisin ilmaistuna: Minimietäisyyden d min omaava lineaarinen (n,k) -lohkokoodi pystyy korjaamaan korkeintaan t virhettä, jos ja vain jos t = (d min 1)/2 a = kokonaisluku, joka ei ole suurempi kuin a. Koodi saattaa kyetä korjaamaan joitakin yksittäisiä enemmän kuin t virhettä sisältäviä sanoja (ts., HW(e) > t), muttei kuitenkaan kaikkia. Lohkokoodin korjauskyky kuitenkin takaa, että kaikki HW(e) t painoiset virhesanat saadaan aina korjattua. 29

KOODISUUNNITTELUSTA 30 Matemaatikot suunittelevat tyypillisesti hyvän painojakauman omaavia uusia lohkokoodeja ja insinöörit miettivät mitkä löydetyistä koodeista soveltuvat parhaiten kuhunkin sovellukseen. Tunnettuja lohkokoodeja on paljon enemmän kuin käytännössä käytettyjä. Dekooderin toteutuksen monimutkaisuus saattaa estää koodivalinnan, vaikka koodin etäisyysominaisuudet olisivat hyvät (d min suuri). Koodausta käsittelevistä oppikirjoista löytyy runsaasti valmiita kooditaulukoita. Seuraavassa on tarkasteltu lineaarisilla lohkokoodeilla koodisuhteen k/n ja parametrien n, k ja t välistä riippuvuutta löydetyille koodeille.

PARAMETRIEN n, k, t JA k/n ESIMERKKEJÄ 31 (n,k,t,d min,k/n) = (5,2,1,3,0.4) (n,k,t,d min,k/n) = (10,4,3,7,0.4) Huomaa, että samalla koodisuhteella k/n vertailtavien koodien dekooderien toteuttavuudessa saattaa olla merkittäviä eroja, ts. taustalla oleva koodimatematiikka saattaa johtaa paljon monimutkaisempaan kooderin ja dekooderin rakenteeseen.

32 KOODIAVARUUS (S)

KOODIAVARUUS (S) 33 Mustat isot pisteet edustavat koodin sallittuja koodisanoja ja kaikki pisteet yhteensä koko koodiavaruutta kooltaan V n. Sallitut koodisanat muodostavat V n -kokoisen koodiavaruuden aliavaruuden kooltaan V k.

KOODIAVARUUDEN PAKKAAMINEN KOODEILLA (S) 34 Koodauksen kaistanleveystehokkutta kuvaa koodisuhde k/n (jollakin korjauskyvyllä t) ja se saa arvon väliltä 0...1. V n -avaruuteen pyritään siis pakkaamaan mahdollisimman paljon laillisia koodisanoja. Tällöin redundanssibittien määrä n-k on kuitenkin pieni (n k), eli koodaus on kaistanleveystehokasta. Lisääntynyt kaistanleveyden tarve syntyy siitä, että aikayksikössä on lähetettävä bittejä n/k -kertainen määrä. Korjauskyky t on kuitenkin huono, koska d min on tällöin pieni. Toisaalta koodisanojen olisi oltava mahdollisimman etäällä toisistaan, jotta d min ja siten korjauskyky t = (d min 1)/2 olisi arvoltaan mahdollisimman suuri, jotta mahdollisimman monta virhettä saadaan suurella todennäköisyydellä korjattua. Koodausteoriaa soveltaen pyritään löytämään koodeja, joiden d min on mahdollisimman suuri valitulle koodisuhteen k/n arvolle. Järjestelmäsuunnittelusta siis tarvittavasta datansiirtonopeudesta ja käytettävissä olevasta kaistanleveydestä seuraa reunaehto sallitulle koodisuhteen k/n minimiarvolle, jolle pyritään sitten löytämään mahdollisimman suuren d min :n ja t:n omaava koodi.

KOODIAVARUUS, PEITTOSÄDE JA KORJAUSKYKY (S) Kun siirrossa syntyy symbolivirhe, bittisana muuttuu joksikin koodiavaruudessa lähellä oikeaa sallittua sanaa olevaksi sanaksi. Jos virhevektorin HW ei ylitä koodin korjauskykyä HW(e) t = (d min 1)/2 sana voidaan dekoodauksessa korjata laskennallisella algoritmilla. Koodin virheenkorjauskyky t määrittelee siis koodiavaruudessa peittosäteen, jonka sisällä olevat sanat voidaan varmasti korjata. Peittosäteen ulkopuolelle jääviä ei voida korjata (jokunen saatetaan pystyä, mutta kaikkien korjaamista ei voida kuitenkaan taata). Koodin kahden laillisen koodisanan välinen pienin mahdollinen etäisyys on minimietäisyys d min, ja sen on oltava: d min 2t + 1. Sallitut koodisanat ovat siis vähintään kahden t -säteen suuruisen etäisyyden +1 päässä toisistaan kuvitteellisessa n -ulotteisessa koodiavaruudessa. 35

KOODIAVARUUS, PEITTOSÄDE JA KORJAUSKYKY (S) 36 C 1,...,C 5 ovat sallittuja koodisanoja. Näitä ei voida korjata (koodista riippuen ehkä joku yksittäinen lähellä pallon reunaa oleva pystytään, mutta ei kaikkia) Peittosäteen sisällä olevat virheelliset sanat voidaan korjata.

KOODISANOJEN VALINTAESIMERKKI (S) 37 Olkoon esimerkiksi (n,k) = (6,3) koodi. On olemassa 2 k = 2 3 = 8 mahdollista sanomavektoria ja koko avaruudessa V n = V 6 on 2 6 = 64 mahdollista 6-pituista koodisanaa. Taulukossa 8 koodisanaa muodostavat siis koodiavaruuden V 6 aliavaruuden V 3. Ko. lineaarisella koodilla on käytössä nollasana ja myös ominaisuus, että minkä tahansa kahden koodisanan modulo-2 (XOR) -summa on joku toinen aliavaruuden V 3 koodisana). Herää siis kysymys, miten sanat muodostettiin kullekkin kolmen informaatiobitin ryhmälle? Vastaus piilee lohkokoodien algebrassa.

KOODISANOJEN VALINTAESIMERKKI (S) 38 Koodisanat on generoitu edellä lineaarikombinaationa kolmesta lineaarisesti riippumattomasta 6-pituisesta vektorista. Ei kuitenkaan ole olemassa yksikäsitteistä valintaa, kuten toisaalta ei ole olemassa täydellistä valinnan vapauttakaan parittelun suhteen. Mahdollisimman etäällä toisistaan olevia koodisanoja voidaan analogisesti verrata ortogonaalisen MFSK-modulaation toteuttamiseen luotettavan siirron aikaansaamiseksi: k kpl informaatiobittejä valitsee yhden M:stä ortogonaalisesta aaltomuodosta M = 2 k -ulotteisessa signaaliavaruudessa. Haluamme toisaalta täyttää koodiavaruuden mahdollisimman monella laillisella koodisanalla (suuri koodisuhteen k/n vaatimus, mutta pieni t = (d min 1)/2 ), mutta toisaalta haluamme niiden olevan mahdollisimman etäällä toisistaan (hyvä korjauskyky t, mutta pieni k/n). Ristiriitaisia vaatimuksia siis. Kompromissi on jossain tuolla välillä. Esimerkkiin liittyvä seuraava 3D -kuva auttaa hahmottamaan hyvien koodien etsinnän tavoitetta koodausalgebran keinoin.

KOODISANOJEN VALINTAESIMERKKI (S) 39 Virheellisiä oikeaa sanaa lähellä olevia vastaanotettuja koodisanoja 8 sanaa/pallo 8 palloa x 8 sanaa = 64 mahdollista vastaanotettua sanaa Ei ole koodisana tämän koodipallon vaikutuspiirissä (tyhjä pallukka) Kuori Hammingetäisyydellä 1 koodisanasta 101001 Laillisia koodisanoja Kuori Hammingetäisyydellä 2 koodisanasta 101001