Come esempio, si prenda un numero binario da 16 bit di lunghezza totale (8 bit per la parte intera e i restanti 8 per la parte frazionaria):
0011010111001110 (00110101.11001110)
Per prima cosa si crea una variabile che contiene le informazioni riguardanti il tipo di rappresentazione che si sta usando:
q = quantizer ([16 8])
In questo modo, si crea un oggetto che contiene le seguenti informazioni:
q =
DataMode = fixed
RoundMode = floor
OverflowMode = saturate
Format = [16 8]
Specificando soltanto la lunghezza di parola e della parte frazionaria, la funzione imposta di default il tipo di dato (virgola fissa), se si stanno utilizzando o meno numeri numeri con segno (complemento a 2) e altre caratteristiche (si rimanda all'Help del programma per ulteriori informazioni).
Si passa quindi alla conversione, usando la funzione bin2num, a cui vanno forniti l'oggetto appena creato e il numero binario sotto forma di stringa.
bin2num (q, '0011010111001110')
ans =
53.8047
Come detto in precedenza, i numeri vengono considerati di default in complemento a 2. Se si prende per esempio il numero
1111001011101101 (11110010.11101101)
ed effettuando una nuova conversione, si ottiene:
bin2num (q, '1111001011101101')
ans =
-13.0742
q = quantizer ([16 8])
In questo modo, si crea un oggetto che contiene le seguenti informazioni:
q =
DataMode = fixed
RoundMode = floor
OverflowMode = saturate
Format = [16 8]
Specificando soltanto la lunghezza di parola e della parte frazionaria, la funzione imposta di default il tipo di dato (virgola fissa), se si stanno utilizzando o meno numeri numeri con segno (complemento a 2) e altre caratteristiche (si rimanda all'Help del programma per ulteriori informazioni).
Si passa quindi alla conversione, usando la funzione bin2num, a cui vanno forniti l'oggetto appena creato e il numero binario sotto forma di stringa.
bin2num (q, '0011010111001110')
ans =
53.8047
Come detto in precedenza, i numeri vengono considerati di default in complemento a 2. Se si prende per esempio il numero
1111001011101101 (11110010.11101101)
ed effettuando una nuova conversione, si ottiene:
bin2num (q, '1111001011101101')
ans =
-13.0742
Nessun commento:
Posta un commento