[go: up one dir, main page]

Kanaalcodering is een methode in de informatietechnologie die als doel heeft het bewerkstelligen van betrouwbaar verzenden van gegevens over een onbetrouwbaar kanaal, of opslag van gegevens op een 'onbetrouwbaar' medium.

Bij eenvoudige kanalen die slechts gehinderd worden door additieve ruis, kan dit doel worden bewerkstelligd door de te verzenden gegevens te representeren door signalen die een voldoend grote afstand, volgens een relevante metriek, ten opzichte van elkaar hebben. Hiertoe wordt redundantie aangebracht in het digitale signaal of het digitale databestand. Deze redundantie wordt in het geval van een binaire informatiebron in het algemeen door het toevoegen van bits aan het digitale signaal verwezenlijkt. De afstandsmaat die vaak gebruikt wordt voor digitale signalen die over onbetrouwbare kanalen worden verzonden is de hammingafstand.

De redundantie in het verzonden signaal maakt detectie en foutcorrectie mogelijk. Foutcorrectie wordt uitgevoerd door te bepalen welke reeks gegevens-eenheden, welke reeks bits, de grootste waarschijnlijkheid heeft om oorspronkelijk te zijn verzonden of opgeslagen. Een elementair voorbeeld van kanaalcodering is het drie maal uitzenden van ieder bit. In plaats van '0' en '1' zendt men dus '000', respectievelijk '111'. Als op het kanaal een van deze drie bits verkeerd wordt ontvangen, dan kan de fout nog correct worden hersteld. De coderingstheorie houdt zich bezig met de wiskundige achtergronden van fouten corrigerende kanaalcodes. Fundamenteel werk is verricht door Claude Shannon in 1948, die capaciteitsgrenzen berekende voor een transmissie zonder fouten.

De betrouwbaarheid van realistische transmissiekanalen wordt mede vergroot door het toepassen van lijncodering. Lijncodering, soms ook wel kanaalcodering genoemd, is een vorm van codering die niet direct gericht is op foutencorrectie, maar op het versterken van andere technische eigenschappen zoals synchronisatie. Door het toepassen van lijncodering neemt de kans dat fouten optreden af. Bij realistische kanalen is het bijvoorbeeld niet gewenst om lange rijen opeenvolgende nullen of enen te verzenden, omdat de ontvanger dan problemen kan krijgen met de synchronisatie. Lijncodering kan ervoor zorgen dat er een bepaald maximum zit in het aantal achtereenvolgens verstuurde nullen of enen.

Kanaalcodering moet niet met broncodering worden verward. Bij broncodering wordt redundantie juist geëlimineerd met als doel efficiënt van de geheugenruimte en transmissie-kanalen gebruik te kunnen maken. Zo is er in veel audiosignalen een zekere 'trend' in het signaal aanwezig: er zijn minder bits nodig als alleen de afwijkingen ten opzichte van deze berekenbare trend daadwerkelijk worden overgestuurd.

In de meeste communicatiesystemen wordt er aan de zendzijde eerst broncodering toegepast, vervolgens kanaalcodering en ten slotte lijncodering. Er zijn ook mengvormen waarbij kanaal- en lijncode samengevoegd zijn.