Codeertheorie

Main article: foutdetectie en correctie

Het doel van de kanaalcodeertheorie is om codes te vinden die snel verzenden, veel geldige codewoorden bevatten en veel fouten kunnen corrigeren of tenminste detecteren. Hoewel niet wederzijds uitsluiten, prestaties op deze gebieden is een afweging. Verschillende codes zijn dus optimaal voor verschillende toepassingen. De benodigde eigenschappen van deze code zijn voornamelijk afhankelijk van de kans op fouten tijdens de transmissie. Bij een typische CD is de beschadiging vooral stof of krassen.

CD ‘ s gebruiken cross-interleaved Reed–Solomon-codering om de gegevens over de schijf te verspreiden.

hoewel het geen erg goede code is, kan een eenvoudige herhalingscode als een begrijpelijk voorbeeld dienen. Stel dat we een blok van data bits (die geluid) en stuur het drie keer. Bij de ontvanger zullen we de drie herhalingen beetje bij beetje bekijken en een meerderheid van stemmen nemen. De draai hieraan is dat we niet alleen sturen de bits in volgorde. We laten ze door elkaar. Het blok data bits wordt eerst verdeeld in 4 kleinere blokken. Dan fietsen we door het blok en sturen een beetje van de eerste, dan de tweede, enz. Dit wordt gedaan drie keer om de gegevens uit over de oppervlakte van de schijf uit te spreiden. In het kader van de eenvoudige herhalingscode kan dit niet effectief lijken. Er zijn echter krachtigere codes bekend die zeer effectief zijn bij het corrigeren van de “burst” fout van een kras of een stofvlek wanneer deze interleaving techniek wordt gebruikt.

andere codes zijn geschikter voor verschillende toepassingen. De communicatie in de diepe ruimte wordt beperkt door het thermische geluid van de ontvanger, dat meer van continue aard is dan van bursty aard. Ook smalbandmodems worden beperkt door het lawaai, aanwezig in het telefoonnet en ook beter gemodelleerd als een continue storing. Mobiele telefoons zijn onderhevig aan snel vervagen. De hoge frequenties gebruikt kan leiden tot een snelle vervaging van het signaal, zelfs als de ontvanger wordt verplaatst een paar centimeter. Opnieuw zijn er een klasse van kanaalcodes die zijn ontworpen om fading te bestrijden.

Lineaire codebedit

hoofdartikel: Lineaire code

De term algebraïsche codeertheorie verwijst naar het subveld van de codeertheorie waar de eigenschappen van codes in algebraïsche termen worden uitgedrukt en vervolgens verder worden onderzocht.

algebraïsche codeertheorie is in principe verdeeld in twee belangrijke soorten codes:

  • Lineaire blokcodes
  • convolutionele codes

Het analyseert de volgende drie eigenschappen van een code-voornamelijk:

  • codewoordlengte
  • totaal aantal geldige codewoorden
  • de minimumafstand tussen twee geldige codewoorden, voornamelijk met behulp van de Hamming-afstand, soms ook andere afstanden zoals de Lee-afstand

lineair blok codebedit

hoofdartikel: blokcode

Lineaire blokcodes hebben de eigenschap lineariteit, d.w.z. de som van elke twee codewoorden is ook een codewoord, en ze worden toegepast op de bronbits in blokken, vandaar de naam lineaire blokcodes. Er zijn blokcodes die niet lineair zijn, maar het is moeilijk te bewijzen dat een code een goede is zonder deze eigenschap.

Lineaire blokcodes worden samengevat door hun symbool alfabetten (bijvoorbeeld binair of ternair) en parameters (n,m,dmin) waarbij

  1. n de lengte van het codewoord is, in symbolen
  2. m het aantal bronsymbolen is dat zal worden gebruikt voor het coderen in een keer,
  3. dmin is de minimale haming afstand voor de code.

Er zijn vele typen lineaire blokcodes, zoals

  1. cyclische codes (bijv., Hamming-codes)
  2. Herhaling codes
  3. Pariteit codes
  4. Polynoom codes (bv., BCH-codes)
  5. Reed–Solomon codes
  6. Algebraïsche geometrische codes
  7. Reed–Muller-codes
  8. Perfecte codes

Blok-codes zijn gekoppeld aan de sphere packing probleem, die heeft enige aandacht door de jaren heen. In twee dimensies is het gemakkelijk te visualiseren. Pak een paar centen plat op de tafel en duw ze samen. Het resultaat is een zeshoek patroon als een bijennest. Maar blokcodes vertrouwen op meer dimensies die niet gemakkelijk kunnen worden gevisualiseerd. De krachtige (24,12) Golay code gebruikt in de diepe ruimte communicatie maakt gebruik van 24 dimensies. Indien gebruikt als een binaire code (wat het meestal is) de dimensies verwijzen naar de lengte van het codewoord zoals hierboven gedefinieerd.

De codeertheorie maakt gebruik van het n-dimensionale bolmodel. Bijvoorbeeld, hoeveel centen kunnen worden verpakt in een cirkel op een tafelblad, of in 3 dimensies, hoeveel knikkers kunnen worden verpakt in een wereldbol. Andere overwegingen vul de keuze van een code in. Bijvoorbeeld, zeshoek verpakking in de beperking van een rechthoekige doos laat lege ruimte op de hoeken. Naarmate de afmetingen groter worden, wordt het percentage lege ruimte kleiner. Maar bij bepaalde afmetingen gebruikt de verpakking alle ruimte en deze codes zijn de zogenaamde “perfecte” codes. De enige niet triviale en nuttige perfecte codes zijn de afstand-3 Hamming codes met parameters voldoen (2r-1, 2r – 1-r, 3), en de binaire en Ternary Golay codes.

een andere eigenschap is het aantal buren dat een enkel codewoord kan hebben.Nogmaals, zie centen als een voorbeeld. Eerst pakken we de centen in een rechthoekig raster. Elke cent zal hebben 4 nabij buren (en 4 op de hoeken die verder weg zijn). In een zeshoek heeft elke cent zes buren. Wanneer we de afmetingen verhogen, neemt het aantal nabije buren zeer snel toe. Het resultaat is dat het aantal manieren voor ruis om de ontvanger een buurman te laten kiezen (vandaar een fout) groeit ook. Dit is een fundamentele beperking van blokcodes, en inderdaad alle codes. Het kan moeilijker zijn om een fout te veroorzaken aan een enkele buurman, maar het aantal buren kan groot genoeg zijn, zodat de totale fout kans daadwerkelijk lijdt.

eigenschappen van lineaire blokcodes worden in veel toepassingen gebruikt. Bijvoorbeeld, wordt de eigenschap syndroom-coset uniciteit van lineaire blokcodes gebruikt in trellis vormgeven, één van de bekendste vormgevingscodes.

convolutionele codebedit

hoofdartikel: convolutionele code

het idee achter een convolutionele code is om elk codewoordsymbool de gewogen som van de verschillende invoerboodschapssymbolen te maken. Dit is als convolutie die in LTI-systemen wordt gebruikt om de output van een systeem te vinden, wanneer je de input en impulsrespons kent.

dus vinden we in het algemeen de uitvoer van de convolutionele encoder van het systeem, dat de convolutionele encoder is, tegen de toestanden van de convolutionele encoder, registers.

in principe bieden convolutionele codes niet meer bescherming tegen lawaai dan een gelijkwaardige blokcode. In veel gevallen bieden ze over het algemeen een grotere eenvoud van implementatie dan een blokcode van gelijke macht. De encoder is meestal een eenvoudig circuit met state geheugen en wat feedback logica, normaal XOR gates. De decoder kan worden geïmplementeerd in software of firmware.

Het Viterbi-algoritme is het optimale algoritme dat wordt gebruikt om convolutionele codes te decoderen. Er zijn vereenvoudigingen om de rekenbelasting te verminderen. Ze vertrouwen op het zoeken van alleen de meest waarschijnlijke paden. Hoewel ze niet optimaal zijn, blijken ze over het algemeen goede resultaten te leveren in geluidarme omgevingen.

convolutionele codes worden gebruikt in spraakbandmodems (V. 32, V. 17, V.34) en in GSM-mobiele telefoons, evenals satelliet-en militaire communicatieapparatuur.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.