Kotisivu | Edellinen sivu | Ylös | Seuraava sivu


20.3 Virheenkorjaavat koodit


Talletetun tiedon virheenkorjauksen yhteydessä ei uudelleenlähetystä voi tietenkään käyttää, koska mitään lähettäjää ei ole. Tällöin joudutaan käyttämään virheenkorjaavia koodeja, jotka "sietävät" tietyn määrän virheitä.

  • Virheenkorjaavia koodeja käytetään myös yksisuuntaisessa tiedonsiirrossa, koska silloin uudelleenlähetyksen pyytäminen on mahdotonta.

Virheenkorjaavissa koodeissa tietoon lisätään virheenkorjaustietoa. Tätä tietoa tarvitaan paljon enemmän kuin virheenpaljastuksen yhteydessä.

Virheenkorjaavien koodien ideana on, että tietty osa tiedosta saakin olla virheellistä, mutta lopputiedosta voidaan silti "kaapia kasaan" alkuperäinen tieto.

Yksinkertainen (mutta tehoton) menelmä on toistokoodaus:

  • Lähetetään jokainen lähetettävä kirjain kolmeen kertaan. Siis esim. merkkijono "Saku" lähetetään muodossa "SSSaaakkkuuu".
  • Jos nyt jossakin kolmen kirjaimen yhdistelmästä sattuu yhteen kirjaimeen virhe, on jäljellä vielä kaksi virheetöntä kirjainta, jolloin "enemmistö voittaa". Näin yksi kirjain kolmesta saa ollakin virheellinen.
  • Jos useampin kuin yksi kirjain kolmesta on virheellinen, ei menetelmä tietysti enää toimi, ja saattaa jopa korjata väärin, jos sama virhe tulee kahteen kirjaimeen.

Käytännössä virheenkorjaavat koodit ovat paljon monimutkaisempia (ja varsin korkeaan matematiikkaan perustuvia).

  • Kaikissa virheenkorjaavissa koodeissa on kuitenkin "väärin korjaamisen" mahdollisuus. Sen todennäköisyys saadaan kuitenkin vaikka kuinka pieneksi.
  • Kuten esimerkistä näkyy, moninkertaistaa virheenkorjaava koodaus usein lähetettävän tiedon määrän.

Esim. matkapuhelinverkossa virheet tulevat usein purskeina, joiden välissä on virheetöntä. Tällaisiin tilanteisiin on olemassa erikoiskoodeja, jotka kestävät purskeita muita paremmin.

Virheenkorjaavia koodeja käytetään mm. CD-levyissä, avaruusluotainten lähetyksissä ja digitaalisissa matkapuhelinverkoissa.



Kotisivu | Edellinen sivu | Ylös | Seuraava sivu
Sanahaku | Hakemisto