Dio teorije koda, blok kodiranje je oblik ispravljanja grešaka naprijed (FEC), također poznat kao kanalni kod, koji pretvara poruke u specifične kodove i šalje informacije kao blok podataka unaprijed određene duljine. Veći blokovi podataka olakšavaju računalu primatelju dekodiranje informacija i ispravljanje pogrešaka do kojih dolazi tijekom prijenosa. Blok kodovi i konvolucijski kodovi su dvije vrste kodova koje se obično koriste u FEC-u. Ove vrste koda dopuštaju slanje poruke preko nepouzdane veze, a i dalje se može dešifrirati kada stigne.
Upotreba blokovnog kodiranja neophodna je zbog buke koja se javlja prilikom slanja poruke. Kada podaci trebaju putovati na veliku udaljenost ili preko nepouzdane veze, Hammingova težina i udaljenost koriste se za određivanje vjerojatnosti pogrešaka. Hammingova težina je broj znamenki potrebnih za izražavanje svih mogućih kombinacija kodova, a hammingova udaljenost je koliko bi se grešaka moralo pojaviti prije nego što bit predstavlja legitimnu, ali pogrešnu informaciju.
Na primjer, ako pošiljatelj koji koristi blok kodiranje želi poslati poruku koja može koristiti samo tri moguća koda od kojih je svaki bio dugačak tri znamenke, Hammingova težina bi bila tri. Kodovi mogu biti 000, 010 i 011. Ako je pogreška rezultirala promjenom bilo koje znamenke, kao što je promjena 000 u 010, kod bi se čitao kao legitiman kod (010), ali ne kao kod koji je pošiljatelj namjeravao (000) . Stoga je Hammingova udaljenost za ovaj kod jedan jer se samo jedna znamenka treba promijeniti da bi izazvala grešku koju računalo ne može popraviti.
Kako bi se smanjila Hammingova udaljenost i smanjile pogreške, podaci se šalju kao blok koda koji je kodiran u određene kodne riječi određene duljine. Izvorni bitovi podataka poruke nazivaju se k bitovima. K bitova se prevode u odgovarajućih n bitova, koji su kodovi koji su odabrani da stoje kao duži kodovi za svaki k bita. Jedinice ili nule se dodaju kako bi bitovi bili ujednačene duljine i smanjila Hammingova udaljenost. Zatim se ti blokovi od n bitova prenose na računalo primatelj.
Razmišljanje o blokovnom kodiranju najjednostavnije je kada ga usporedite s dvoje ljudi koji razgovaraju. Kada razgovarate u bučnoj prostoriji ili vičete na veliku udaljenost, ima više mjesta za pogreške u onome što osoba koja prima. Ako je rečenica duga, osoba može ispraviti više pogrešaka uzimajući cijelu rečenicu u kontekst, ali kratke rečenice imaju veću stopu pogreške jer je teže dešifrirati što osoba govori.
Na primjer, ako jedna osoba vikne “Crvena mačka”, a druga osoba čuje “Uhranjena mačka”, pogrešno prekidaju rečenicu. Međutim, ako je prva osoba rekla: “Imam crveno obojenu mačku”, a druga je čula “Imam hranjenu mačku”, kontekst rečenice olakšava određivanje osobe koja je zapravo rekla “crvena” i nije “nahranjen”. Ovo je osnovni princip iza blokovnog kodiranja i upotrebe dužih, jednolikih kodova koji pomažu računalima da točno prevedu blok informacija.