Codice Gray: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
|||
(8 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 10:
Diversi [[Dispositivo elettronico|dispositivi elettronici]] di acquisizione di posizione, tra cui gli [[Trasduttore di posizione angolare|encoder]] (lineari o rotativi, come - per esempio - i regolatori di volume digitali negli impianti [[Hi-Fi]]), codificano il valore digitale della posizione chiudendo o aprendo una serie di contatti elettrici o barriere ottiche. Questi dispositivi devono produrre, in base alla misura della posizione rilevata, un particolare numero in base 2; per esempio, ruotando la manopola di un encoder a 3 bit, si potrebbe ottenere in output il valore '011'.
Se queste posizioni venissero rappresentate
{| class="wikitable" style="text-align:center;"
|-
Riga 25 ⟶ 24:
|}
Anche se idealmente si fosse in assenza di
011, 001, 101, 100
Riga 34 ⟶ 33:
Questo problema, relativo all'ambiguità della posizione, è causato dal fatto di aver utilizzato una numerazione binaria ordinata in modo naturale, e può essere risolta usando un altro tipo di numerazione, che utilizza una codifica in cui si commuta un solo interruttore alla volta (un solo bit alla volta).
== Algoritmi di codifica e decodifica ==
Riga 48 ⟶ 45:
La prima cifra del codice Gray ([[bit più significativo|Most Significant Bit]]) è la stessa della codifica binaria, le altre sono il risultato dello XOR tra ogni cifra in codifica binaria e la cifra successiva.
A titolo di esempio: applicato a numeri binari di tre cifre, l'algoritmo ritorna la seguente codifica; va notato che anche nel passaggio dal valore "7" al valore "0" nella codifica cambia solamente un bit (codice di tipo ciclico):
{|class="wikitable"
Riga 91 ⟶ 88:
=== Da Gray a binario ===
[[File:ConvertGrayToBin.png|thumb|Schema logico dell'algoritmo di decodifica]]
Il procedimento di conversione da codice di Gray a codifica binaria normale è analogo a quello di codifica, ma l'operatore XOR viene applicato bit
Gray: 101011 XOR
|