Precisione e intervallo
Nota
È necessario prestare attenzione alla precisione e all’intervallo dei tipi di dati in virgola e fissa e ai ridimensionamenti che si scelgono per sapere se verranno chiamati metodi di arrotondamento o se si verificheranno degli overflow o degli underflow.
Intervallo
L’intervallo è l’ampiezza di numeri che un tipo di dati in virgola fissa e il ridimensionamento possono rappresentare. L’intervallo di numeri rappresentabili per un numero in virgola fissa in complemento a due, con lunghezza della parola wl, ridimensionamento S e distorsione B è illustrato di seguito:

Per i numeri in virgola fissa con segno o senza segno di qualsiasi tipo di dati, il numero di schemi diversi di bit è 2wl.
Ad esempio, nel complemento a due, i numeri negativi devono essere rappresentati così come lo zero, quindi il valore massimo è 2wl -1 – 1. Poiché esiste una sola rappresentazione per zero, è presente un numero disuguale di numeri positivi e negativi. Questo significa che è presente una rappresentazione per -2wl-1 ma non per 2wl-1:

Gestione dell’overflow
Poiché un tipo di dati in virgola fissa rappresenta numeri all'interno di un intervallo finito, possono verificarsi overflow e underflow se il risultato di un'operazione è maggiore o minore dei numeri in quell'intervallo.
Il software Fixed-Point Designer™ consente sia di saturare sia di avvolgere gli overflow. La saturazione rappresenta gli overflow positivi, come il numero positivo più grande nell'intervallo utilizzato, e gli overflow negativi come il numero negativo più grande nell'intervallo utilizzato. L’avvolgimento utilizza l'aritmetica modulo per riportare un overflow nell'intervallo rappresentabile del tipo di dati.
Quando si crea un oggetto fi, tutti gli overflow sono saturati. La proprietà OverflowAction della fimath predefinita è saturate. È possibile registrare gli overflow e gli underflow impostando la proprietà LoggingMode dell’oggetto fipref su on.
Precisione
La precisione di un numero in virgola fissa è la differenza tra i valori successivi rappresentabili dal tipo di dati e il ridimensionamento, che è uguale al valore del suo bit meno significativo. Il valore del bit meno significativo, e quindi la precisione del numero, è determinato dal numero di bit frazionari. Un valore in virgola fissa può essere rappresentato entro la metà della precisione del tipo di dati e del ridimensionamento.
Ad esempio, una rappresentazione in virgola fissa con quattro bit a destra del punto binario ha una precisione di 2 -4 o 0,0625, che è il valore del suo bit meno significativo. Qualsiasi numero all'interno dell'intervallo di questo tipo di dati e ridimensionamento può essere rappresentato entro (2 -4)/2 o 0,03125, che è metà della precisione. Questo è un esempio di rappresentazione di un numero con precisione finita.
Metodi di arrotondamento
Quando si rappresentano numeri con precisione finita, non tutti i numeri nell'intervallo disponibile possono essere rappresentati esattamente. Se un numero non può essere rappresentato esattamente dal tipo di dati e dal ridimensionamento specificati, viene utilizzato un metodo di arrotondamento per convertire il valore in un numero rappresentabile. Sebbene la precisione venga sempre persa nell'operazione di arrotondamento, il costo dell'operazione e la quantità di distorsione introdotta dipendono dal metodo di arrotondamento stesso. Per offrire una maggiore flessibilità nel compromesso tra costo e distorsione, il software Fixed-Point Designer supporta attualmente i seguenti metodi di arrotondamento:
Ceilingarrotonda al numero rappresentabile più vicino nella direzione dell'infinito positivo.Convergentarrotonda al numero rappresentabile più vicino. In caso di parità,convergentarrotonda al numero pari più vicino. Questo è il metodo di arrotondamento con meno distorsione fornito dal toolbox.Zeroarrotonda al numero rappresentabile più vicino nella direzione dello zero.Floor, che è equivalente al troncamento del complemento a due, arrotonda al numero rappresentabile più vicino nella direzione dell'infinito negativo.Nearestarrotonda al numero rappresentabile più vicino. In caso di parità,nearestarrotonda al numero rappresentabile più vicino nella direzione dell’infinito positivo. Questo metodo di arrotondamento è l’impostazione predefinita per la creazione di oggettifiefiaritmetici.Roundarrotonda al numero rappresentabile più vicino. In caso di parità, il metodoroundarrotonda come segue:I numeri positivi sono arrotondati al numero rappresentabile più vicino nella direzione dell'infinito positivo.
I numeri negativi sono arrotondati al numero rappresentabile più vicino nella direzione dell'infinito negativo.
Selezione di un metodo di arrotondamento. Ogni metodo di arrotondamento ha un insieme di proprietà intrinseche. A seconda dei requisiti di progetto, queste proprietà potrebbero rendere il metodo di arrotondamento più o meno adatto. Conoscendo i requisiti del progetto e comprendendo le proprietà di ciascun metodo di arrotondamento, è possibile determinare quale metodo di arrotondamento si adatta meglio alle proprie esigenze. Le proprietà più importanti da considerare sono:
Costo: indipendentemente dall'hardware utilizzato, qual è il costo in termini di elaborazione richiesto dal metodo di arrotondamento?
Basso: il metodo richiede pochi cicli di elaborazione.
Medio: il metodo richiede un numero moderato di cicli di elaborazione.
Alto: il metodo richiede più cicli di elaborazione.
Nota
Le stime dei costi fornite sono indipendenti dall'hardware. Alcuni processori hanno modalità di arrotondamento integrate, quindi è necessario considerare attentamente l'hardware che si sta utilizzando prima di calcolare il costo reale di ogni modalità di arrotondamento.
Distorsione: qual è il valore atteso dei valori arrotondati meno i valori originali: ?
: il metodo di arrotondamento introduce una distorsione negativa.
: il metodo di arrotondamento non produce distorsione.
: il metodo di arrotondamento introduce una distorsione positiva.
La tabella seguente mostra un confronto tra i diversi metodi di arrotondamento disponibili nel prodotto Fixed-Point Designer.
| Fixed-Point Designer Metodo di arrotondamento | Costo | Distorsione |
|---|---|---|
Ceiling | Basso | Grande positiva |
Convergent | Alto | Senza distorsione |
Zero | Basso |
|
Floor | Basso | Grande negativa |
Nearest | Medio | Piccola positiva |
Round | Alto |
|
Simplest(solo Simulink®) | Basso | Dipende dall’operazione |