Vad är kanalkodning?
Kanalkodning är en teknik som används i digital kommunikation för att säkerställa att en överföring tas emot med minimala eller inga fel. De olika kodningsmetoderna som kan användas uppnås genom att sammanfoga ytterligare binära siffror i transmissionen. Vid avkodning vid mottagningsänden kan överföringen kontrolleras för fel som kan ha inträffat och i många fall reparerats. Andra gånger ber mottagaren helt enkelt om överföringen igen.
Idén bakom kanalkodning utvecklades på grund av den oundvikliga förekomsten av fel på en viss typ av kommunikationskanal. Radiovågor, elektriska signaler och till och med ljusvågor över fiberoptiska kanaler kommer att ha en viss mängd brus på mediet, liksom nedbrytning av signalen som inträffar över ett visst avstånd. Eftersom det är ett så vanligt problem inom kommunikation har många teorier för hur man hanterar det utvecklats under grenar av tillämpad matematik som informationsteori och kodningsteori.
En vanligt förekommande metod kallas automatisk upprepningsbegäran (ARQ), som helt enkelt innebär att mottagaren kontrollerar överföringen för fel och frågar om vidarebefordran om något skulle inträffa. Detta kallas ibland bakåt felkorrigering. Kanalkodning är å andra sidan en framåtfelkorrigeringsteknik. Avsändaren förbereder bitarna för överföring med hjälp av en speciell algoritm känd som en felkorrigerande kod, som sedan avkodas på den mottagande änden. Båda metoderna används också ofta på ett hybridiserat sätt, vilket gör det möjligt att reparera små fel i överföringen med en kanalkod, med stora fel som kräver en fullständig vidarebefordran.
Den första kanalkodningstekniken skapades av en matematiker vid namn Richard Hamming, som utvecklade det som kallas Hamming-koden. Detta var den första framåtfelkorrigeringskoden, som innebär att ytterligare binära siffror inkluderas i överföringen som kallas paritetsbitar. En smart beräkning av paritetsbitarna på den mottagande änden av överföringen kommer att avslöja om det har uppstått några fel i överföringen, var de befinner sig i strängen av bitar, och hur man reparerar dem för att återställa den ursprungliga överföringen.
Hamming-koden faller in i familjen av kanalkodningsmetoder som kallas blockkoder, av vilka många har utvecklats under åren. Blockkoder involverar vanligtvis att bitarna samlas in i block med fast längd, som sedan kallas kodord. Varje kodord ges lämpliga kontrollbitar för avkodning av mottagaren. Blockkodsmetoder tenderar att öka överföringens storlek på grund av de tillagda bitarna i kodordet, vilket kan ha en effekt på kanalens bandbredd.
En annan kanalkodningsmetod är känd som en konvolutional kod. Dessa metoder är mycket snabbare och kan koda en bitström av valfri längd. En vanlig kod av denna typ kallas Viterbi-koden, skapad av den italienska matematikern Andrew Viterbi. Nackdelen med denna metod är att när längden på den invändiga koden ökar, så gör dess komplexitet också vid avkodning. I många fall används konvolutionalkoder i kombination med blockkoder i det som kallas sammankopplade felkorrigeringskoder.