Lineaire code

In de coderingstheorie is een lineaire code een foutcorrigerende blokcode waarvoor geldt dat elke lineaire combinatie van de codewoorden ook een codewoord is. Wiskundige kan de code omschreven worden als een lineaire deelruimte van een vectorruimte van eindige dimensie over een eindig lichaam . De elementen van zijn de symbolen waarmee een codewoord gevormd wordt.

Lineaire codes worden gebruikt in voorwaartse foutcorrectie en worden toegepast om symbolen (zoals bits) te versturen over een communicatiekanaal, zodat als er een fout optreedt in het communicatiekanaal, sommige fouten gedetecteerd of hersteld kunnen worden door de ontvanger. Een lineaire code is een blokcode met woordlengte met als extra eigenschap dat het een lineaire deelruimte is.

Voorbeeld

De vectorruimte is van dimensie over een het lichaam , dat bestaat uit alleen de symbolen 0 en 1. Er zijn dus mogelijke codewoorden, rijtjes van 7 symbolen 0 en 1.

De lineaire deelruimte voortgebracht door de lineair onafhankelijke rijen van de onderstaande matrix:

is een lineaire code met dimensie 3 over . De code bestaat uit 8 codewoorden: de lineaire combinaties van de drie basisvectoren, inclusief het nulwoord 0000000. De acht codewoorden zijn dus de volgende rijen:

Generatormatrix en parity check matrix

De matrix die een lineaire code voortbrengt, wordt de generator-matrix genoemd. Een -dimensionale lineaire code met woordlengte over , heeft een generatormatrix met hoogte (iedere rij is een van de overige rijen lineair onafhankelijk codewoord) en breedte een dergelijke code bestaat uit codewoorden. De zogenaamde parity check matrix heeft breedte en hoogte De rijen van zijn woorden die loodrecht staan op alle rijen van en dus op alle codewoorden. Voor ieder codewoord geldt dus dat de vermenigvuldiging de nulvector oplevert.

Omgekeerd geldt ook dat als een willekeurig woord uit de vectorruimte vermenigvuldigd met niet de nulvector oplevert, dit willekeurige woord noodzakelijkerwijs geen codewoord kan zijn. Als de code dus wordt gebruikt voor transport of opslag van informatie, is op deze wijze foutdetectie mogelijk: een ontvangen woord wordt vermenigvuldigd met als het resultaat niet de nulvector is, moeten er 1 of meer bitfouten zijn opgetreden.

Praktijkvoorbeelden

Enkele voorbeelden van daadwerkelijk gebruikte lineaire codes zijn:

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.