Gray-code

Van Wikipedia, de vrije encyclopedie

Gray-code

Een gray-code, vernoemd naar de Amerikaanse natuurkundige Frank Gray (1887-1969), is een binaire codering die als eigenschap heeft dat twee opeenvolgende getallen altijd maar één bit verschillen, en daarom ook wel een eenwisselcode wordt genoemd. In tegenstelling tot een gewogen binaire code is de code niet via een eenvoudige optelsom van machten van twee te herleiden. Bovendien zijn er meerdere gray-codes mogelijk voor een gegeven aantal bits.

Thumb
3-bits gray-code
Thumb
3-bits positiecodeerschijf

Gray-codes worden veel toegepast waar een mechanische positie omgezet moet worden in een digitale code. Als niet alle positiegevers exact gelijktijdig schakelen zal er geen onbedoelde tussenwaarde ontstaan. Bij gewogen codes zal bij een fout in een van de meer significante bits de fout aanzienlijk groter kunnen zijn.

Voorbeeld

Meer informatie Decimaal, Gewoon binair ...
DecimaalGray-codeGewoon binair
00 0 0 00 0 0 0
10 0 0 10 0 0 1
20 0 1 10 0 1 0
30 0 1 00 0 1 1
40 1 1 00 1 0 0
50 1 1 10 1 0 1
60 1 0 10 1 1 0
70 1 0 00 1 1 1
81 1 0 01 0 0 0
91 1 0 11 0 0 1
101 1 1 11 0 1 0
111 1 1 01 0 1 1
121 0 1 01 1 0 0
131 0 1 11 1 0 1
141 0 0 11 1 1 0
151 0 0 01 1 1 1
Sluiten

Bij de overgang tussen stand 7 en 8 veranderen bij een gewogen-binair gecodeerde gever alle bits. Een windvaan met 16 sectoren en 4-bits codering zal dan, als hij tussen code 7 en 8 staat te twijfelen, misschien een tussenstand 1111 of 0000 (of alle andere mogelijke codes) kunnen geven. Bij een gray-code is er geen tussenliggende toestand voor 0100 en 1100, omdat alleen de linkerbit verandert, en dus vinden er geen neveneffecten ("glitches") plaats tijdens de overgang.

Een algoritme

Een algoritme om een gray-code van een willekeurig aantal bits samen te stellen gaat als volgt:

Neem een 1-bits code, bijvoorbeeld:

Meer informatie Stap 1, Getal ...
Stap 1
GetalGray-code
00
11
Sluiten

Zet de tabel in omgekeerde volgorde onder of boven het al bestaande en zet in een nieuwe kolom voor het oude stuk een 0 en voor het nieuwe stuk een 1 (het originele deel is vet weergegeven, de nieuwe kolom cursief):

Meer informatie Stap 2, Getal ...
Stap 2
GetalGray-code
00 0
10 1
21 1
31 0
Sluiten
Meer informatie Stap 3, Getal ...
Stap 3
GetalGray-code
00 0 0
10 0 1
20 1 1
30 1 0
41 1 0
51 1 1
61 0 1
71 0 0
Sluiten
Meer informatie Stap 4, Getal ...
Stap 4
GetalGray-codeGetalGray-code
00 0 0 081 1 0 0
10 0 0 191 1 0 1
20 0 1 1101 1 1 1
30 0 1 0111 1 1 0
40 1 1 0121 0 1 0
50 1 1 1131 0 1 1
60 1 0 1141 0 0 1
70 1 0 0151 0 0 0
Sluiten

Herhaal dit totdat het gewenste aantal bits bereikt is.

Een ander talstelsel

Ook met andere talstelsels is een gray-code mogelijk. Bijvoorbeeld decimaal:

Meer informatie Normaal decimaal, van ...
Normaal decimaalGray decimaal
vant/mvant/m
09000009
1019019010
2029020029
3039039030
............
9099099090
100109190199
110119189180
120129170179
Sluiten
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.