Wat is blokcodering?
Onderdeel van de codetheorie is blokcodering een vorm van voorwaartse foutcorrectie (FEC), ook bekend als een kanaalcode, die berichten omzet in specifieke codes en de informatie verzendt als een gegevensblok met een vooraf bepaalde lengte. Grotere gegevensblokken maken het voor de ontvangende computer gemakkelijker om de informatie te decoderen en fouten te corrigeren die tijdens de overdracht optreden. Blokcodes en convolutionele codes zijn twee codetypes die veel worden gebruikt in FEC. Met dit soort code kan een bericht via een onbetrouwbare verbinding worden verzonden en nog steeds worden ontcijferd wanneer het aankomt.
Het gebruik van blokcodering is noodzakelijk vanwege ruis die optreedt wanneer een bericht wordt verzonden. Wanneer gegevens over een lange afstand of over een onbetrouwbare verbinding moeten worden afgelegd, worden het Hamming-gewicht en de afstand gebruikt om de kans op fouten te bepalen. Het hamergewicht is het aantal cijfers dat nodig is om alle mogelijke codecombinaties uit te drukken, en de hamming-afstand is hoeveel fouten er zouden moeten optreden voordat een bit een legitiem, maar verkeerd stuk informatie vertegenwoordigde.
Als een afzender die blokcodering gebruikt bijvoorbeeld een bericht wilde verzenden dat slechts drie mogelijke codes kon gebruiken die elk drie cijfers lang waren, zou het Hamming-gewicht drie zijn. De codes kunnen 000, 010 en 011 zijn. Als een fout resulteerde in een cijferwijziging, zoals 000 die veranderde in 010, zou de code worden gelezen als een legitieme code (010) maar niet als de code die de afzender bedoelde (000) . De Hamming-afstand voor deze code is dus één omdat slechts één cijfer hoeft te worden gewijzigd om een fout te veroorzaken die de computer niet kan verhelpen.
Om de Hamming-afstand te verkleinen en fouten te verminderen, worden gegevens verzonden als een codeblok dat is gecodeerd in specifieke codewoorden van een bepaalde lengte. De oorspronkelijke berichtgegevensbits worden aangeduid als k bits. De k bits worden vertaald naar overeenkomstige n bits, dit zijn codes die zijn geselecteerd om als langere codes voor elke k bit te staan. Er worden één of nullen toegevoegd om de bits een uniforme lengte te geven en de Hamming-afstand te verminderen. Vervolgens worden deze blokken van n bits verzonden naar de ontvangende computer.
Denken aan blokcodering is het eenvoudigst wanneer je het vergelijkt met twee mensen die een gesprek voeren. Wanneer u in een lawaaierige ruimte praat of over een lange afstand schreeuwt, is er meer ruimte voor fouten in wat de ontvangende persoon hoort. Als de zin lang is, kan de persoon meer fouten corrigeren door de hele zin in context te nemen, maar korte zinnen hebben een hoger foutenpercentage omdat het moeilijker is om te ontcijferen wat de persoon zegt.
Als de ene persoon bijvoorbeeld "Rode kat" roept en de andere persoon "Gevoede kat" hoort, wordt de zin verkeerd onderbroken. Als de eerste persoon echter zei: "Ik heb een roodgekleurde kat" en de tweede persoon hoorde: "Ik heb een gevoed gekleurde kat", maakt de context van de zin het gemakkelijk om te bepalen welke persoon daadwerkelijk "rood" heeft gezegd en niet "gevoed." Dit is het basisprincipe achter blokcodering en het gebruik van langere, uniforme codes om computers te helpen een blok informatie nauwkeurig te vertalen.