Se il segnale da convertire è bipolare (cioè presenta valori sia positivi che negativi) è possibile usare un codice modulo e segno. In tale codice il bit più significativo (il primo) viene riservato per il segno (0=positivo, 1= negativo), mentre i restanti bit servono per valore del numero. Esempio 110 = -2, mentre 010 = +2.
Il principale difetto del codice modulo e segno è che vi sono due codici usati per rappresentare lo stesso numero zero e precisamente 000 (=+0) e 100 (-0). Il risultato che avendo a disposizione n bit, il numero di livelli codificabili è solo
N = 2n - 1
Per esempio con n=3 bit, si possono codificare solo 7 livelli e non 8.
Una codifica più intelligente per i segnali bipolari è quella detta a complemento a due. In questo caso i valori positivi vengono rappresentati normalmente, mentre i valori negativi si ottengono da quelli positivi complementandoli a uno (cioè in pratica scambiando tutti gli 1 con gli 0 e viceversa) e sommando uno al risultato finale.
Per esempio con 3 bit il numero + 3 sarà rappresentato come
011 = + 3
Invece il numero -3 si ottiene dal precedente scambiando gli 1 con gli zero
011 → 100
e quindi somando 1 al risultato così ottenuto
100 + 1 = 101 = - 3
Il vantaggio della notazione a complemento a due è che il numero zero viene rappresentato con una sola combinazione, 000. Considerando per esempio una quantizzazione silenziata a 8 livelli di una tensione compresa fra -8V e + 8V, la codifica a complemento a due è la seguente:
Si osservi che usando il codice in complemento a 2, si ha un codice in più per i valori negativi (100) che non ha un codice positivo corrispondente. L'intervallo di valori è asimmetrico. Se, come spesso accade usando la quantizzazione silenziata, viene usato un numero di intervalli dispari (7 in questo caso), il primo codice negativo (100) non viene utilizzato.
Per ricavare il valore digitale corrispondente a una data tensione analogica, bisogna in questo caso ricavare il numero di intervallo con la solita formula
Nintervallo = approssima(V/Q)
e quindi convertire tale valore in binario in complemento a 2. Per esempio, nel caso precedente, se V = -4,5V abbiamo
Nintervallo = approssima(V/Q) = approssima(-4,5/2) = -2
e dunque il valore digitale è 110, cioè -2 espresso in complemento a 2.
Nel codice binario “normale”, quando un contatore aumenta di uno, può succedere che cambi il valore di molti o addirittura di tutti i bit. Per esempio, in un contatore up a 3 bit, passando dal numero 5 (101) al numero 6 (110), cambiano i valori del secondo e del terzo bit. Quando si passa da 7 (111) a 0 (000), tutti i bit cambiano.
Il problema è che, a causa dei tempi di ritardo sempre presenti nei dispositivi reali, è improbabile che tutti i bit di un numero possano commutare (=cambiare valore) esattamente nello stesso istante. Se questo non accade, si genera una configurazione binaria intermedia, la quale codifica un valore indesiderato (che può generare errore nella successiva elaborazione).
Per esempio, passando da 5 (101) a 6 (110) si potrebbe avere:
101 (5) → 111 (7) → 110 (6)
oppure
101 (5) → 100 (4) → 110 (6)
Nel primo esempio il valore intermedio 111 (7) non è desiderato e si genera per il fatto che non tutti i bit commutano insieme. Nel secondo esempio il valore indesiderato è 100 (4).
Per evitare questo genere di problemi, alcuni convertitori adottano un codice particolare, detto codice Gray, nel quale le configurazioni successive distano sempre al massimo un solo bit. Per esempio il codice Gray a tre bit con il corrispondente valore decimale è il seguente:
000 (0)
001 (1)
011 (3)
010 (2)
110 (6)
111 (7)
101 (5)
100 (4)
Naturalmente, poichè le combinazioni del codice Gray non corrispondono a quelle della numerazione binaria, è necessario poi convertirle in binario, tramite convertitori hardware o per mezzo di programmi.
Nella codifica Binary-coded decimal (BCD) ogni cifra di un numero decimale è rappresentata da un codice binario di quattro bit, il cui valore è compreso tra 0 (0000) e 9 (1001). Per esempio il numero 127 è rappresentato in BCD come 0001-0010-0111.
Questa codifica è usata da alcuni convertitori AD perché può essere direttamente visualizzata su un display a 7 segmenti.
Sito realizzato in base al template offerto da
http://www.graphixmania.it