Hvad er Channel Coding?
Kanalkodning er en teknik, der bruges i digital kommunikation for at sikre, at en transmission modtages med minimale eller ingen fejl. De forskellige kodningsmetoder, der kan anvendes, opnås ved at flette yderligere binære cifre ind i transmissionen. Når der afkodes på den modtagende ende, kan transmissionen kontrolleres for fejl, der kan have forekommet og i mange tilfælde repareret. Andre gange beder modtageren simpelthen om transmission igen.
Ideen bag kanalkodning blev udviklet på grund af den uundgåelige eksistens af fejl på enhver given kommunikationskanal. Radiobølger, elektriske signaler og endda lysbølger over fiberoptiske kanaler vil have en vis mængde støj på mediet såvel som nedbrydning af signalet, der opstår over en vis afstand. At være et så almindeligt problem inden for kommunikation, adskillige teorier for, hvordan man håndterer det, har udviklet sig under grene af anvendt matematik såsom informationsteori og kodningsteori.
En almindeligt anvendt metode kaldes automatisk gentagelsesanmodning (ARQ), som simpelthen involverer, at modtageren kontrollerer transmissionen for fejl og beder om videresendelse, hvis der skulle opstå nogen. Dette kaldes undertiden som korrektion af bagudvendt fejl. Kanalkodning er på den anden side en teknik til fremadrettelseskorrektion (FEC). Afsenderen forbereder bitene til transmission ved hjælp af en speciel algoritme kendt som en fejlkorrektionskode, der derefter afkodes på den modtagende ende. Begge metoder bruges også ofte på en hybrid måde, hvilket tillader, at små fejl i transmissionen kan repareres med en kanalkode, med større fejl, der kræver en komplet genoverførsel.
Den første kanalkodningsteknik blev oprettet af en matematiker ved navn Richard Hamming, der udviklede det, der er kendt som Hamming-koden. Dette var den første fremadrettede fejlkorrektionskode, som indebærer inkludering af yderligere binære cifre i transmissionen, der kaldes paritetsbits. En smart beregning af paritetsbitene på den modtagende ende af transmissionen vil afsløre, om der er opstået nogen fejl i transmissionen, hvor de er i strengen af bit, og hvordan man reparerer dem for at gendanne den originale transmission.
Hamming-koden falder ind i familien af kanalkodningsmetoder, der kaldes blokkoder, hvoraf mange er blevet udviklet gennem årene. Blokkoder involverer typisk, at bitene indsamles i blokke med faste længder, der derefter benævnes kodeord. Hvert kodeord får de relevante kontrolbits til dekodning af modtageren. Blodkodemetoder har en tendens til at øge transmissionsstørrelsen på grund af de tilføjede bit i kodeordet, hvilket kan have en indflydelse på kanalens båndbredde.
En anden kanalkodningsmetode er kendt som en konvolutional kode. Disse metoder er meget hurtigere og kan kode en bitstrøm af enhver længde. En almindeligt anvendt kode af denne type kaldes Viterbi-koden, skabt af den italienske matematiker Andrew Viterbi. Ulempen ved denne metode er, at når længden af den indviklede kode øges, så gør dens kompleksitet også ved afkodning. I mange tilfælde bruges konvolutionelle koder i kombination med blokkoder i det, der er kendt som sammenkædede fejlkorrektionskoder.