Gray Code

This is a variable weighted code and is cyclic. This means that it is arranged so that every transition from one value to the next value involves only one bit change. The Gray code is sometimes referred to as reflected binary, because the first eight values compare with those of the last 8 values, but in reverse order.
DecimalBinaryGray
000000000
100010001
200100011
300110010
401000110
501010111
601100101
701110100
810001100
910011101
1010101111
1110111110
1211001010
1311011011
1411101001
1511111000
  
Modulo 2 Arithmetic
This is binary addition with the carry ignored.



Converting Gray Code to Binary

1. write down the number in gray code
2. the most significant bit of the binary number is the most significant bit of the gray code
3. add (using modulo 2) the next significant bit of the binary number to the next significant bit of the gray coded number to obtain the next binary bit
4. repeat step 3 till all bits of the gray coded number have been added modulo 2
the resultant number is the binary equivalent of the gray number

Example, convert 1101101 in gray code to binary

Gray           Binary
1101101
1101101   1 copy down the msb
1101101   10 1 modulo2 1 = 0
1101101   100 0 modulo2 0 = 0
1101101   1001 0 modulo2 1 = 1
1101101   10010 1 modulo2 1 = 0
1101101   100100 0 modulo2 0 = 0
1101101   1001001 0 modulo2 1 = 1

the answer is 1001001

Converting Binary to Gray
1. write down the number in binary code
2. the most significant bit of the gray number is the most significant bit of the binary code
3. add (using modulo 2) the next significant bit of the binary number to the next significant bit of the binary number to obtain the next gray coded bit
4. repeat step 3 till all bits of the binary coded number have been added modulo 2
the resultant number is the gray coded equivalent of the binary number

Example, convert 1001001 in binary code to gray code

Binary        Gray
1001001
1001001   1 copy down the msb
1001001   11 1 modulo2 0 = 1
1001001   110 0 modulo2 0 = 0
1001001   1101 0 modulo2 1 = 1
1001001   11011 1 modulo2 0 = 1
1001001   110110 0 modulo2 0 = 0
1001001   1101101 0 modulo2 1 = 1

The answer is 1101101

Excess 3 Gray Code
   In many applications, it is desirable to have a code that is BCD as well as unit distance. A unit distance code derives its name from the fact that there is only one bit change between two consecutive numbers. The excess 3 gray code is such a code, the values for zero and nine differ in only 1 bit, and so do all values for successive numbers.
  Outputs from linear devices or angular encoders may be coded in excess 3 gray code to obtain multi-digit BCD numbers.

Decimal   Excess 3 Gray
    0            0010
    1            0110
    2            0111
    3            0101
    4            0100
    5            1100
    6            1101
    7            1111
    8            1110
    9            1010 

Post a Comment

0 Comments