Mis on kanali kodeerimine?

Kanali kodeerimine on tehnika, mida kasutatakse digitaalses suhtluses, et tagada edastuse vastuvõtmine minimaalsete vigadega või ilma. Erinevad kasutatavad kodeerimismeetodid saavutatakse täiendavate kahendnumbrite põimimisega edastusse. Kui vastuvõtvas otsas dekodeeritakse, saab edastust kontrollida võimalike vigade suhtes ja paljudel juhtudel parandada. Muul ajal palub saaja lihtsalt edastamist uuesti.

Kanali kodeerimise idee töötati välja vigade vältimatu olemasolu tõttu mis tahes tüüpi sidekanalites. Raadiolainetel, elektrilistel signaalidel ja isegi valguslainetel kiudoptiliste kanalite kaudu on kandjal teatav müra, samuti signaali halvenemine, mis toimub teatud vahemaa tagant. Kuna kommunikatsioonis on nii levinud probleem, on rakendusmatemaatika valdkondades, nagu teabeteooria ja kodeerimise teooria, välja töötatud arvukalt teooriaid selle lahendamiseks.

Ühte sagedamini kasutatavat meetodit nimetatakse automaatseks kordustaotluseks (ARQ), mis hõlmab lihtsalt seda, et saaja kontrollib edastust vigade suhtes ja küsib uuesti saatmist, kui see peaks juhtuma. Seda nimetatakse mõnikord ka tagurpidiseks veaparanduseks. Kanali kodeerimine on seevastu edasisuunas veaparanduse (FEC) tehnika. Saatja valmistab bitid edastamiseks ette, kasutades spetsiaalset algoritmi, mida tuntakse veaparanduskoodina ja mis seejärel vastuvõtvas otsas dekodeeritakse. Mõlemat meetodit kasutatakse sageli ka hübriidsel viisil, mis võimaldab edastuse väikseid vigu parandada kanalikoodiga, kusjuures suuremad vead nõuavad täielikku uuesti edastamist.

Esimese kanali kodeerimise tehnika lõi matemaatik nimega Richard Hamming, kes töötas välja nn Hammingi koodi. See oli esimene edasisuunas veaparanduskood, mis hõlmab edastusse täiendavate kahendnumbrite lisamist, mida nimetatakse paarsusbitideks. Edastuse vastuvõtvas otsas olevate paarsusbittide nutikas arvutamine näitab, kas edastuses on esinenud vigu, kus need bittide stringis asuvad ja kuidas neid parandada, et taastada algne edastus.

Hammingi kood kuulub kanali kodeerimismeetodite perekonda, mida nimetatakse plokkkoodideks ja millest paljud on aastate jooksul välja töötatud. Plokikoodid hõlmavad tavaliselt bittide kogumist fikseeritud pikkusega plokkideks, mida seejärel nimetatakse koodisõnadeks. Igale koodisõnale antakse saaja poolt dekodeerimiseks sobivad kontrollbitid. Plokkkoodi meetodid kipuvad suurendama edastuse suurust koodisõna lisatud bittide tõttu, mis võib mõjutada kanali ribalaiust.

Teist kanali kodeerimise meetodit tuntakse konvolutsioonikoodina. Need meetodid on palju kiiremad ja võivad kodeerida mis tahes pikkusega bitivoogu. Ühte sagedamini kasutatavat seda tüüpi koodi nimetatakse Viterbi koodiks, mille on loonud Itaalia matemaatik Andrew Viterbi. Selle meetodi puuduseks on see, et kui konvolutsioonikoodi pikkus suureneb, suureneb ka selle keerukus dekodeerimisel. Paljudel juhtudel kasutatakse konvolutsioonikoode koos plokkkoodidega nn konkateneeritud veaparanduskoodides.