(Fr.: contrôle des erreurs; Du.: Fehlerschutz; Eng.: error control), een term die speciaal in de telecommunicatietechniek wordt gebruikt ter aanduiding van systemen die worden toegepast om de kans op bitfouten (bit-error-rate), die ontoelaatbaar hoog kan zijn, onder controle te krijgen. Bij een digitaal transmissiesysteem zal nl., welke transmissieweg of -methode men ook toepast, steeds een kans bestaan dat door allerlei storingsinvloeden de informatiebits foutief ontvangen worden.
Een foutenbeheerssysteem (error-controlsystem) is in het algemeen te splitsen in een detectie- en een correctiesysteem; soms is foutendetectie voldoende. In hoofdzaak worden de mogelijkheden van een foutendetectie- en correctiesysteem bepaald door het principe waarbij een code en/of een terugkanaal wordt gebruikt. In geval van een terugkanaal is het mogelijk bepaalde informatie van de ontvanger terug te sturen naar de zender. Bij gebruik van een code worden aan de informatiebits controlebits (check bits) toegevoegd, zodanig dat informatie- en controlebits te zamen aan een bepaalde code voldoen. Meestal wordt aan een vast aantal informatiebits een vast aantal controlebits toegevoegd; te zamen vormen de bits dan een blok of woord van een bepaalde lengte. De controlebits worden de toegevoegde redundantie (overvloedigheid) genoemd.
Bij systemen zonder terugkanaal is foutenbeheersing alleen mogelijk door middel van foutendetecterende en -corrigerende codes, die tot doel hebben de detectie van een bepaalde klasse van fouten. Als het ontvangen blok niet voldoet aan de code, bevinden zich binnen dat blok zeker een of meer foutieve bits. In aansluiting hierop moet nog in bepaalde mate een foutencorrectie kunnen worden uitgevoerd. Een eenvoudige foutendetecterende code is de pariteitscode, waarbij aan een aantal informatiebits één controlebit wordt toegevoegd. Deze pariteitsbit is bij de even-pariteitscode zodanig dat in het blok, gevormd door de informatie- en de pariteitsbit, de som van het aantal ‘enen’ even is. Deze code detecteert alle foutieve blokken met een oneven aantal foutieve bits; een even aantal blijft ongedetecteerd. De code is speciaal bedoeld blokken met één foutieve bit te kunnen detecteren; het bepalen ervan en dus ook de correctie is niet mogelijk.
Met het pariteitsprincipe is ook een tamelijk eenvoudige foutencorrigerende code mogelijk nl. door toepassing van een dubbele pariteit.
Stel dat de informatie steeds verdeeld wordt in M blokjes van N bits. Aan ieder blokje wordt een pariteitsbit toegevoegd (verticale pariteit); vervolgens wordt nu aan de M blokjes van (N + 1) bits nog een blokje van (N + 1) pariteitsbits (horizontale pariteit) toegevoegd, waarvan het de K-de bit is (K ≦ N + 1) die de pariteitsbit voorstelt van alle K-de bits uit de M blokjes. Het uiteindelijke gecodeerde blok bestaat dus uit (M + l)-blokjes van(N + l)-bits. Deze code detecteert o.a. alle foutieve blokken waarin 1, 2 of 3 foutieve bits voorkomen en is in staat ieder blok met één foutieve bit te corrigeren. Bij één foutieve bit geeft de pariteit van het blokje aan in welk van de blokjes de fout zit en de andere pariteit geeft de foutieve bit binnen het blokje aan. Deze bit kan dus worden gecorrigeerd. Opgemerkt moet worden dat foutencorrectie in het algemeen nooit met zekerheid juist kan worden uitgevoerd. Het is bijv. nooit zeker of bij één fout in beide pariteiten niet verschillende bits foutief zijn.
Het is normaliter veel eenvoudiger met een code fouten te detecteren dan ze te corrigeren. Een foutencorrigerende code moet meer informatie opleveren dan alleen maar het goed of fout zijn van het blok. De methode waarmee met deze informatie de meest waarschijnlijke foutieve bit(s) moeten worden gecorrigeerd is vaak zeer bewerkelijk. De kracht van een code is in het algemeen direct gerelateerd aan het aantal toegepaste controlebits en de mate waarin zij is aangepast aan het foutengedrag. Het blijkt dat foutieve bits vaak niet gelijkmatig verdeeld voorkomen maar zich manifesteren in ‘bursts’: plaatsen in de bitstroom met relatief dicht bij elkaar gelegen foutieve bits. Er zijn codes ontwikkeld, zoals enkele cyclische codes, die vooral deze burstfouten goed kunnen detecteren, waardoor zij tot de krachtigste foutendetecterende codes behoren. De code op zichzelf is meestal nogal gecompliceerd. De informatie- en controle-bits worden hierbij in een polynoomvorm voorgesteld. De waarde, 0 of 1, van de bit n in het blok vormt de coëfficiënt van de term Xn.
De controlebits worden zodanig gekozen dat de blokpolynoom, gevormd door de informatie- en de controlebits, steeds bepaalde eigenschappen bezit. Een groot voordeel van cyclische codes is dat het coderen en decoderen vaak met zeer eenvoudige logische schakelingen kan worden verwezenlijkt. Bij systemen waar gebruik kan worden gemaakt van een retourkanaal zijn verschillende en meestal krachtigere foutenbeheerssystemen mogelijk. Veel toegepast wordt het ARQ-systeem (Automatic Repetition upon Request). De ontvanger detecteert dan de fouten en vraagt in geval van een fout via het retourkanaal om hertransmissie van het foutieve blok totdat deze uiteindelijk als goed wordt ontvangen. De kwaliteit van het foutenbeheerssysteem wordt in dit geval hoofdzakelijk bepaald door het foutendetecterend vermogen van de toegepaste code; in combinatie met bijv. een cyclische code met een voldoende aantal controlebits vormt een dergelijk hertransmissiesysteem een van de betere foutenbeheerssystemen. Geheel andere systemen zijn nog mogelijk zoals het ‘Information feedback system’, waarbij de informatie in haar geheel wordt teruggezonden naar de zender die deze dan vergelijkt met de verzonden informatie. Bij een gevonden fout wordt dan tot hertransmissie overgegaan. Hier wordt dus geen code gebruikt. De opzet van een foutenbeheerssysteem zal steeds afhangen van de gestelde eisen en de mogelijkheden. Bij bijv. transmissiewegen met een zeer lange looptijd zullen hertransmissiesystemen niet zo voor de hand liggen, hetgeen ook geldt voor systemen met meer dan één ontvanger.