Što je kodiranje kanala?

Kanalsko kodiranje je tehnika koja se koristi u digitalnoj komunikaciji kako bi se osiguralo da je prijenos primljen s minimalnim pogreškama ili bez njih. Različite metode kodiranja koje se mogu koristiti postižu se preplitanjem dodatnih binarnih znamenki u prijenos. Kada se dekodira na prijemnoj strani, prijenos se može provjeriti za pogreške koje su se možda dogodile i, u mnogim slučajevima, popraviti. U drugim slučajevima primatelj jednostavno ponovno traži prijenos.

Ideja iza kodiranja kanala nastala je zbog neizbježnog postojanja pogrešaka na bilo kojoj vrsti komunikacijskog kanala. Radio valovi, električni signali, pa čak i svjetlosni valovi preko optičkih kanala imat će određenu količinu šuma na mediju, kao i degradaciju signala koja se događa na određenoj udaljenosti. Budući da je tako čest problem u komunikacijama, brojne teorije o tome kako se nositi s njim razvile su se u granama primijenjene matematike kao što su teorija informacija i teorija kodiranja.

Jedna od najčešće korištenih metoda naziva se automatski zahtjev za ponavljanje (ARQ), koji jednostavno uključuje primatelja da provjerava prijenos grešaka i traži ponovni prijenos ako se dogodi. To se ponekad naziva ispravljanje pogrešaka unatrag. S druge strane, kodiranje kanala je tehnika ispravljanja grešaka naprijed (FEC). Pošiljatelj priprema bitove za prijenos pomoću posebnog algoritma poznatog kao kod za ispravljanje pogrešaka, koji se zatim dekodira na kraju primatelja. Obje metode se također često koriste na hibridni način, dopuštajući da se male pogreške u prijenosu poprave pomoću koda kanala, dok velike pogreške zahtijevaju potpuni ponovni prijenos.

Prvu tehniku ​​kanalnog kodiranja stvorio je matematičar po imenu Richard Hamming, koji je razvio ono što je poznato kao Hammingov kod. Ovo je bio prvi kod za ispravljanje pogreške naprijed, koji podrazumijeva uključivanje dodatnih binarnih znamenki u prijenos koji se nazivaju paritetni bitovi. Pametan izračun paritetnih bitova na prijemnom kraju prijenosa otkrit će jesu li se u prijenosu dogodile greške, gdje se nalaze u nizu bitova i kako ih popraviti kako bi se povratio izvorni prijenos.

Hammingov kod spada u obitelj metoda kanalnog kodiranja koji se nazivaju blok kodovi, od kojih su mnogi razvijeni tijekom godina. Blok kodovi obično uključuju skupljanje bitova u blokove fiksne duljine, koji se tada nazivaju kodnim riječima. Svakoj kodnoj riječi primatelj daje odgovarajuće provjere bitove za dekodiranje. Metode blokovnog koda imaju tendenciju povećanja veličine prijenosa zbog dodanih bitova u kodnoj riječi, što može utjecati na propusnost kanala.

Druga metoda kanalnog kodiranja poznata je kao konvolucijski kod. Ove metode su mnogo brže i mogu kodirati bit stream bilo koje duljine. Jedan često korišteni kod ove vrste zove se Viterbijev kod, koji je stvorio talijanski matematičar Andrew Viterbi. Nedostatak ove metode je da kako se duljina konvolucionog koda povećava, tako raste i njegova složenost prilikom dekodiranja. U mnogim slučajevima, konvolucijski kodovi se koriste u kombinaciji s blok kodovima u onome što je poznato kao spojeni kodovi za ispravljanje pogrešaka.