Codarea canalului este o tehnică utilizată în comunicațiile digitale pentru a se asigura că o transmisie este recepționată cu erori minime sau fără erori. Diferitele metode de codare care pot fi utilizate sunt realizate prin împletirea unor cifre binare suplimentare în transmisie. Când este decodificată la capătul de recepție, transmisia poate fi verificată pentru erori care ar fi putut apărea și, în multe cazuri, reparată. Alteori, destinatarul pur și simplu cere din nou transmiterea.
Ideea din spatele codificării canalelor a fost dezvoltată datorită existenței inevitabile a erorilor pe orice tip dat de canal de comunicare. Undele radio, semnalele electrice și chiar undele luminoase pe canalele de fibră optică vor avea o anumită cantitate de zgomot pe mediu, precum și o degradare a semnalului care apare la o anumită distanță. Fiind o problemă atât de comună în comunicații, numeroase teorii despre cum să o rezolvi s-au dezvoltat în cadrul unor ramuri ale matematicii aplicate, cum ar fi teoria informației și teoria codificării.
O metodă folosită în mod obișnuit este numită cerere de repetare automată (ARQ), care implică pur și simplu destinatarul să verifice transmisia pentru erori și să solicite retransmiterea dacă apare. Aceasta este uneori denumită corectarea erorilor înapoi. Codarea canalului, pe de altă parte, este o tehnică de corectare a erorilor înainte (FEC). Expeditorul pregătește biții pentru transmitere folosind un algoritm special cunoscut sub numele de cod de corectare a erorilor, care este apoi decodat la capătul de recepție. Ambele metode sunt adesea folosite într-o manieră hibridă, permițând repararea erorilor mici în transmisie cu un cod de canal, erorile majore necesitând o retransmisie completă.
Prima tehnică de codificare a canalelor a fost creată de un matematician pe nume Richard Hamming, care a dezvoltat ceea ce este cunoscut sub numele de codul Hamming. Acesta a fost primul cod de corectare a erorilor înainte, care implică includerea unor cifre binare suplimentare în transmisie, numite biți de paritate. Un calcul inteligent al biților de paritate la capătul de recepție al transmisiei va dezvălui dacă au apărut erori în transmisie, unde se află acestea în șirul de biți și cum să le reparați pentru a recupera transmisia originală.
Codul Hamming se încadrează în familia metodelor de codificare a canalelor denumite coduri bloc, dintre care multe au fost dezvoltate de-a lungul anilor. Codurile bloc implică de obicei biții colectați în blocuri de lungimi fixe, care sunt apoi denumite cuvinte de cod. Fiecare cuvânt de cod primește biții de verificare corespunzători pentru decodare de către destinatar. Metodele de cod bloc tind să mărească dimensiunea transmisiei datorită biților adăugați în cuvântul de cod, care pot avea un efect asupra lățimii de bandă a canalului.
O altă metodă de codificare a canalului este cunoscută sub numele de cod convoluțional. Aceste metode sunt mult mai rapide și pot codifica un flux de biți de orice lungime. Un cod utilizat în mod obișnuit de acest tip se numește codul Viterbi, creat de matematicianul italian Andrew Viterbi. Dezavantajul acestei metode este că, pe măsură ce lungimea codului convoluțional crește, crește și complexitatea acestuia la decodificare. În multe cazuri, codurile convoluționale sunt utilizate în combinație cu codurile bloc în ceea ce este cunoscut sub numele de coduri de corectare a erorilor concatenate.