Mudanças entre as edições de "Código Gray"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 8: Linha 8:
 
*sistemas de controle de posição de eixos rotativos em máquinas
 
*sistemas de controle de posição de eixos rotativos em máquinas
 
*minimização de circuitos (Mapas de Karnaugh)
 
*minimização de circuitos (Mapas de Karnaugh)
*minimização e até corrição de erros na transmissão digital (ex: QAM)
+
*minimização e até correção de erros na transmissão digital (ex: QAM)
  
  
Linha 147: Linha 147:
 
:<math>  g_{1} = b_{1} \oplus b_{2} </math>
 
:<math>  g_{1} = b_{1} \oplus b_{2} </math>
 
:<math>  g_{0} = b_{0} \oplus b_{1} </math>
 
:<math>  g_{0} = b_{0} \oplus b_{1} </math>
 +
 +
:g(3..0) <= b(3..0) xor '0' & b(3..1)
  
 
==Conversão de Gray para Binário==
 
==Conversão de Gray para Binário==
Linha 167: Linha 169:
 
:<math>  b_{1} = g_{1} \oplus g_{2} \oplus g_{3} </math>
 
:<math>  b_{1} = g_{1} \oplus g_{2} \oplus g_{3} </math>
 
:<math>  b_{0} = g_{0} \oplus g_{1} \oplus g_{2} \oplus g_{3} </math>
 
:<math>  b_{0} = g_{0} \oplus g_{1} \oplus g_{2} \oplus g_{3} </math>
 +
 +
:b(3..0) <= g(3..0) xor  '0' b(3..1)
  
 
==Curiosidade==
 
==Curiosidade==
 
*[https://patentimages.storage.googleapis.com/a3/d7/f2/0343f5f2c0cf50/US2632058.pdf PULSE CODE COMMUNICATION Patente US2632058] Depositante: Bell Labs,  Inventor: Frank Gray.  Essa patente descreve o código Gray.
 
*[https://patentimages.storage.googleapis.com/a3/d7/f2/0343f5f2c0cf50/US2632058.pdf PULSE CODE COMMUNICATION Patente US2632058] Depositante: Bell Labs,  Inventor: Frank Gray.  Essa patente descreve o código Gray.
 
*[https://en.wikipedia.org/wiki/Gray_code História e usos do código Gray] [https://en-m-wikipedia-org.translate.goog/wiki/Gray_code?_x_tr_sl=auto&_x_tr_tl=pt&_x_tr_hl=pt-BR&_x_tr_pto=wapp]
 
*[https://en.wikipedia.org/wiki/Gray_code História e usos do código Gray] [https://en-m-wikipedia-org.translate.goog/wiki/Gray_code?_x_tr_sl=auto&_x_tr_tl=pt&_x_tr_hl=pt-BR&_x_tr_pto=wapp]

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