Gray-koodi

Wikipedia

Gray-koodilla tarkoitetaan lukujen 0,1,...,2n − 1 (missä n on positiivinen kokonaisluku) binäärikoodaamista siten, että lukuesityksestä seuraavaan siirryttäessä täsmälleen yksi bitti vaihtaa tilaansa.

Esimerkiksi 3-pituinen Gray-koodi olisi seuraava:

Luku Binäärikoodi Gray-koodi
0 000 000
1 001 001
2 010 011
3 011 010
4 100 110
5 101 111
6 110 101
7 111 100

4-pituinen Gray-koodi:

Luku Binäärikoodi Gray-koodi
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
8 1000 1100
9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000

Matemaattisessa mielessä n-pituinen Gray-koodi antaa niin sanotun kauppamatkustajan ongelman ratkaisun n-ulotteisessa hyperkuutiossa, kun verkon solmupisteitä (kaupungit) vastaavat kuution kulmat ja jänteitä (tiet) kuution särmät.

Lukua x vastaava Gray-koodi saadaan yksinkertaisesti laskemalla biteittäinen XOR-operaatio (poissulkeva TAI-operaatio) lukujen x ja x / 2 binääriesityksistä.

Esim. GRAY(610)=GRAY(1102)=XOR(1102,0112)= 1012.

Myös käänteinen operaatio, luvun binääriesityksen laskeminen Gray-koodin perusteella, onnistuu biteittäisillä binäärioperaatioilla helposti. Tällöin pitää vain jakaa Gray-koodiesitystä toistuvasti luvulla 2 (siirto vähemmän merkitsevien bittien suuntaan), kunnes saadaan nolla ja ottaa näin saaduista esityksistä biteittäinen XOR-operaatio.

Esim. INVERSEGRAY(1012)=XOR(1012,0102,0012)=1102=610.

Gray-koodeja käytetään hyvin yleisesti erilaisten mittaus- ja säätöjärjestelmien toteuttamisessa. Gray-koodin käytön etuna binäärilukujärjestelmään verrattuna on mm. se, että mittauslaitteiden rajapintaefektien vaikutukset mittaustuloksiin minimoituvat.

[muokkaa] Esimerkki Gray-koodin käytöstä

Nykyaikainen kameralla ja GPRS-yhteydellä varustettu matkapuhelin voitaisiin Gray-koodia käyttäen muuttaa hyvin yleiskäyttöiseksi mittalaitteeksi. Ennen digitaalitekniikan aikakautta lähes kaikki fysikaalisten suureiden mittalaitteet perustuivat analogiatekniikkaan, jossa mitattava suure muunnettiin teknisin menetelmin joko pituuden tai kiertymiskulman mittaamiseksi. Korvaamalla asteikon Gray-koodiliuskalla (tai -kiekolla) ja käyttämällä sen lukemiseen puhelimen kameraa ja siitä suoritettavaa viivaskannausta mitattava suure saadaan luettua puhelimen muistiin. Lukemaa voidaan tämän jälkeen käsitellä puhelimen omaa tietojenkäsittelykapasiteettia hyödyntäen ja välittää se GRRS-yhteyden avulla tai SMS-viestinä mihin tahansa maailman kolkkaan. Puhelinta voidaan myös ohjata mistä päin maailmaa tahansa. Ainoa ehto järjestelmän toimivuudelle on se, että ollaan matkapuhelinverkon kuuluvuusalueella. Puhelimeen ei tarvitse tehdä mitään rakenteellisia muutoksia. Siihen tarvitaan vain sopiva ohjelmisto.

Järjestelmää voitaisiin hyödyntää teollisuudessa tai vaikkapa erilaisten automaattisten hälytysjärjestelmien (esim. tulvavaroitukset) toteutuksessa. Suurten luonnonkatastrofien yhteydessä tällaiset järjestelmät voisivat usein pelastaa tuhansien ihmisten hengen.