1
7-Apr-04 Siirtotekniikka / JPR 313
6.2.1 Lohkokoodit
• tehdään bittiryhmälle
– bittiryhmään lisätään sovitun algoritmin mukaan ylimääräisiä bittejä [k informaatiobittiä => n koodibittiä, joista n-k lisäbittiä], käytetään yleensä merkintää (n,k)-koodi
– koodinopeus (code rate) Rc= k / n vastaa hyötysuhdetta
– vastaanotetun lohkon oikeellisuus (eli onko sallittu bittikombinaatio) tarkistetaan ja virheet voidaan korjata ainakin rajoitetusti ilman uudelleenlähetystä
• koodin virheenkorjauskykyä kuvataan koodietäisyyden avulla
– ilmaisee, kuinka monessa elementissä kaksi koodisanaa eroaa toisistaan – binäärikoodin yhteydessä käytetään nimitystä Hamming-etäisyys
• yleisesti dekoodaus on paljon vaikeampi kuin koodaus
7-Apr-04 Siirtotekniikka / JPR 314
• esimerkkejä erilaisista lohkokoodeista
– Hamming-koodi
• ensimmäisiä virheenkorjaavia koodeja, laajasti käytetty
• koodisana saadaan kertomalla lähdesana erityisella generaattorimatriisilla, tarkemmin sanottuna sen transpoosilla
• Hammingin koodilla tarkoitetaan yleensä hamming(7,4) koodia, jossa lohkon pituus on 4 bittiä ja koodisanan pituus 7 bittiä, eli 3 bittiä käytetään redundanttiin tietoon
– tällä koodilla kyetään korjaamaan yhden bitin virheet, mutta runsaasti virheitä sisältävällä jaksolla koodaus on tehoton
315
7-Apr-04 Siirtotekniikka / JPR 315
– Bose-Chaudhuri-Hocquenghem (BCH)
• tärkeimpiä lohkokoodeja
• parametreja voidaan vaihdella laajalti ja koodeja käyttää suurillakin nopeuksilla
Hamming codes are a subset of the more general code family known as BCH (Bose-Chaudhuri- Hocquenhem) codes discovered in 1959 and 1960.
Whereas Hamming can detect up to 2 or correct 1 error general BCH codes can correct any number of errors if the code is long enough, e.g. (11,1023) can correct 255 errors – used in deep space probes.
316
7-Apr-04 Siirtotekniikka / JPR 316
– Reed Solomon (RS)
• BCH-koodien ei-binäärinen versio (m bittiä / koodisymboli)
• ”Reed-Solomon forward error correction with interleaving”on FEC- menetelmä, joka on tarkoitettu käytettäväksi korkeatasoisissa
videoyhteyksissä
• käytetään myös langattomissa järjestelmissä
• Menetelmän haittapuolena sekä koodaus että enkoodaus aiheuttavat tiedonsiirtoon ylimääräisen viiveen. Tämä koodaus ei korjaa kaikkia virheitä, mutta se turvaa laadukkaan siirron reaaliajassa. Voyager II kuvat lähetettiin käyttäen tätä Reed-Solomon koodausta.
RS codes are a subset of BCH codes that operate at the block level rather than bit level.
Incoming blocks are represented by a new set of ksymbols to be packaged in a super- coded block of nsymbols
Decoder can detect and correct complete errored blocks – used in mobile radio / CD as alternative / addition to interleaving.
1
7-Apr-04 Siirtotekniikka / JPR 317
– Golay
• lineaarisia binäärikoodeja, jotka sallivat lyhyet koodisanat
• täydellinen Golay-koodi koodaa 12 bittiä 23 bitiksi ja siitä käytetään merkintää (23,12)
– minimietäisyys 7, 3 bitin virheenkorjauskyky
• laajennettu Golay-koodi sisältää ylimääräisen pariteettibitin, joka mahdollistaa enintään neljän bitin virheen havaitsemisen. Koodia merkitään (24,12) ja sitä kutsutaan myös nimellä half-rate golay.
• voidaan käyttää maximum likelihood –dekoodausta (valitaan pienimmän etäisyyden päässä käytössä oleva koodisana)
• dekoodaus voidaan suorittaa käyttäen joko kovia tai pehmeitä päätöksiä.
Pehmeitä päätöksiä käyttämällä saavutetaan parempi virheenkorjaus, mutta kulutetaan enemmän prosessointitehoa.
• käytetään reaaliaikasovelluksissa sekä radioliikennöinnissä
7-Apr-04 Siirtotekniikka / JPR 318
2
7-Apr-04 Siirtotekniikka / JPR 319
6.2.2 Konvoluutiokoodit
• lohkokoodeissa jokainen lohko on riippumaton muista lohkoista
• konvoluutiokoodauksessa koodisanat riippuvat sekä sen hetkisestä lähetettävästä datasta, että aiemmin lähetetystä datasta.
• kooderi sisältää siirtorekisterin, jota siirretään aina lisättäessä uusi bitti
• siirtorekisterin pituus on kooderin pituusraja, eli se on ainoa koodaukseen käytetty muistialue
• uusi bitti koodataan rekisterissä olevien bittien kanssa käyttäen mod-2 yhteenlaskuja
7-Apr-04 Siirtotekniikka / JPR 320
Figure 10.13.
(a) Constraint length-3, rate-½ convolutional encoder.
(b) Constraint length-2, rate-⅔ convolutional encoder.
=> impulssivasteet: 1-polku (1,1,1) ja 2-polku (1,0,1)
3
7-Apr-04 Siirtotekniikka / JPR 321
7-Apr-04 Siirtotekniikka / JPR 322
4
7-Apr-04 Siirtotekniikka / JPR 323
Figure 10.14
Code tree for the convolutional encoder of Figure 10.13a.
datajono 10011
=> koodijono 11 10 11 11 01
7-Apr-04 Siirtotekniikka / JPR 324
Figure 10.15
Trellis for the convolutional encoder of Figure 10.13a.
datajono 10011 => koodijono 11 10 11 11 01
5
7-Apr-04 Siirtotekniikka / JPR 325
• konvoluutiomallissa ei voida tarkasti sanoa, että esimerkiksi jokainen yhden bitin virhe lohkossa tulee korjattua, vaan ainoastaan, että keskimääräisesti tietty osuus bittivirheitä onnistutaan pitkällä aikavälillä korjaamaan => soveltuvat sovelluksiin, joissa dekoodatussa informaatiossa voidaan sallia virheitä (esim. puheensiirto)
• soveltuvat kanavalle, jossa kohina on satunnaista ja jossa ei ole purskemuotoisia häiriöitä
– altis virhepurskeille ja tehokkaaksi menetelmäksi on havaittu konvoluutiokoodauksen ja lohkokoodauksen (vrt hamming koodi) yhdistäminen, jolloin purskeiset virhejaksot kyetään hallitsemaan paremmin
7-Apr-04 Siirtotekniikka / JPR 326
• dekoodaus on huomattavasti hankalampaa kuin koodaus ja siinä käytetään ns.Viterbin algoritmia
• etuna dekoodatun informaation laadun laskeminen tasaisesti siirtovirheiden määrän kasvaessa ilman äkillistä laadun romahtamista
• konvoluutiokoodien pieni koodisuhde estää niiden käytön sovelluksissa, joissa nettosiirtonopeus on tärkeä kriteeri