Kas yra blokinis kodavimas?

Kodo teorijos dalis, blokinis kodavimas yra išankstinio klaidų taisymo (FEC) forma, dar žinoma kaip kanalo kodas, kuri paverčia pranešimus į specifinius kodus ir siunčia informaciją kaip iš anksto nustatyto ilgio duomenų bloką. Didesni duomenų blokai leidžia priimančiam kompiuteriui lengviau iššifruoti informaciją ir ištaisyti perdavimo metu pasitaikančias klaidas. Blokiniai kodai ir konvoliuciniai kodai yra du kodų tipai, dažniausiai naudojami FEC. Šių tipų kodai leidžia išsiųsti pranešimą nepatikimu ryšiu ir vis tiek jį iššifruoti, kai jis gaunamas.

Naudoti blokinį kodavimą būtina dėl triukšmo, kuris atsiranda siunčiant pranešimą. Kai duomenis reikia nukeliauti ilgą atstumą arba naudojant nepatikimą ryšį, klaidų tikimybei nustatyti naudojamas Hamingo svoris ir atstumas. Hamming svoris yra skaitmenų, reikalingų visiems galimiems kodų deriniams išreikšti, skaičius, o sumušimo atstumas yra tai, kiek klaidų turėtų įvykti, kad bitas būtų teisėta, bet neteisinga informacijos dalis.

Pavyzdžiui, jei siuntėjas, naudodamas blokinį kodavimą, norėtų išsiųsti pranešimą, kuriame būtų galima naudoti tik tris galimus kodus, kurių kiekvienas būtų trijų skaitmenų, Hamingo svoris būtų trys. Kodai gali būti 000, 010 ir 011. Jei dėl klaidos pasikeičia vienas skaitmuo, pvz., 000 pakeičiamas į 010, kodas bus skaitomas kaip teisėtas kodas (010), bet ne kodas, kurio norėjo siuntėjas (000). . Taigi šio kodo Hamingo atstumas yra vienas, nes norint sukelti klaidą, kurios kompiuteris negali ištaisyti, reikia pakeisti tik vieną skaitmenį.

Siekiant sumažinti Hamingo atstumą ir sumažinti klaidas, duomenys siunčiami kaip kodo blokas, kuris užkoduojamas į tam tikrus tam tikro ilgio kodinius žodžius. Pradiniai pranešimo duomenų bitai vadinami k bitais. K bitai verčiami į atitinkamus n bitų, kurie yra kodai, kurie buvo pasirinkti, kad būtų ilgesni kiekvieno k bitų kodai. Pridedami vienetai arba nuliai, kad antgaliai būtų vienodo ilgio ir sumažintas Hamingo atstumas. Tada šie n bitų blokai perduodami į priimantį kompiuterį.

Mąstyti apie blokinį kodavimą paprasčiausia, lyginant jį su dviejų žmonių pokalbiu. Kai kalbate triukšmingoje patalpoje arba šaukiate dideliu atstumu, priimančiojo girdime daugiau klaidų. Jei sakinys ilgas, asmuo gali ištaisyti daugiau klaidų, paimdamas visą sakinį kontekste, tačiau trumpuose sakiniuose klaidų dažnis yra didesnis, nes sunkiau iššifruoti, ką žmogus sako.

Pavyzdžiui, jei vienas žmogus šaukia: „Raudona katė“, o kitas girdi: „Pamaitinta katė“, jie neteisingai nutraukia sakinį. Tačiau jei pirmasis asmuo pasakė: „Aš turiu raudonos spalvos katę“, o antrasis išgirdo: „Aš šeriu spalvotą katę“, sakinio kontekstas leidžia lengvai nustatyti, kas iš tikrųjų pasakė „raudona“ ir ne „maitinamas“. Tai yra pagrindinis blokinio kodavimo principas ir ilgesnių, vienodų kodų naudojimas, padedantis kompiuteriams tiksliai išversti informacijos bloką.