Mudanças entre as edições de "Código Gray"
(Sem diferença)
|
Edição atual tal como às 22h06min de 29 de abril de 2024
O código Gray é uma codificação na qual números adjacentes diferem de apenas um único bit. Desta forma ao fazer uma contagem em Gray, a cada incremento apenas um bit é modificado. Isso difere do que ocorre na contagem em binário, onde vários bits podem alterar com o incremento de um.
Por exemplo:
- Em código binário sequencial o número adjacente a 0111 (7) é o 1000 (8), mudança em 4 bits.
- Em código Gray seria: o número adjacente a 0100 (7) é o 1100 (8), mudança de apenas 1 bit.
Entre as aplicações do código Gray temos:
- sistemas de controle de posição de eixos rotativos em máquinas
- minimização de circuitos (Mapas de Karnaugh)
- minimização e até correção de erros na transmissão digital (ex: QAM)
Tabela de códigos de 0 a 15
Octal | Hexadecimal | Decimal | Binário | Gray | One Hot |
---|---|---|---|---|---|
00 | 0 | 0 | 0000 | 0000 | 0000.0000.0000.0001 |
01 | 1 | 1 | 0001 | 0001 | 0000.0000.0000.0010 |
02 | 2 | 2 | 0010 | 0011 | 0000.0000.0000.0100 |
03 | 3 | 3 | 0011 | 0010 | 0000.0000.0000.1000 |
04 | 4 | 4 | 0100 | 0110 | 0000.0000.0001.0000 |
05 | 5 | 5 | 0101 | 0111 | 0000.0000.0010.0000 |
06 | 6 | 6 | 0110 | 0101 | 0000.0000.0100.0000 |
07 | 7 | 7 | 0111 | 0100 | 0000.0000.1000.0000 |
10 | 8 | 8 | 1000 | 1100 | 0000.0001.0000.0000 |
11 | 9 | 9 | 1001 | 1101 | 0000.0010.0000.0000 |
12 | A | 10 | 1010 | 1111 | 0000.0100.0000.0000 |
13 | B | 11 | 1011 | 1110 | 0000.1000.0000.0000 |
14 | C | 12 | 1100 | 1010 | 0001.0000.0000.0000 |
15 | D | 13 | 1101 | 1011 | 0010.0000.0000.0000 |
16 | E | 14 | 1110 | 1001 | 0100.0000.0000.0000 |
17 | F | 15 | 1111 | 1000 | 1000.0000.0000.0000 |
Conversão de Binário para Gray
Conversão de um número binário de bits em um número Gray pode ser feita considerando o um número binário inicial , o número Gray correspondente pode ser obtido através de:
para
para
Por exemplo para N = 4:
- g(3..0) <= b(3..0) xor '0' & b(3..1)
Conversão de Gray para Binário
Conversão de um número Gray de bits em um número binário pode ser feita considerando o um número Gray inicial , o número binário correspondente pode ser obtido através de:
para
para
Por exemplo para N = 4:
Ou expandindo:
- b(3..0) <= g(3..0) xor '0' b(3..1)
Curiosidade
- PULSE CODE COMMUNICATION Patente US2632058 Depositante: Bell Labs, Inventor: Frank Gray. Essa patente descreve o código Gray.
- História e usos do código Gray [1]