Contenuto principale

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

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:

The range of representable values is shown on a number line centered around the bias value.

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:

The range of representable values for a slope of 1 and a bias of zero is represented on a number line

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:

  • Ceiling arrotonda al numero rappresentabile più vicino nella direzione dell'infinito positivo.

  • Convergent arrotonda al numero rappresentabile più vicino. In caso di parità, convergent arrotonda al numero pari più vicino. Questo è il metodo di arrotondamento con meno distorsione fornito dal toolbox.

  • Zero arrotonda 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.

  • Nearest arrotonda al numero rappresentabile più vicino. In caso di parità, nearest arrotonda al numero rappresentabile più vicino nella direzione dell’infinito positivo. Questo metodo di arrotondamento è l’impostazione predefinita per la creazione di oggetti fi e fi aritmetici.

  • Round arrotonda al numero rappresentabile più vicino. In caso di parità, il metodo round arrotonda 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: Ε(θ^θ)?

    • Ε(θ^θ)<0: il metodo di arrotondamento introduce una distorsione negativa.

    • Ε(θ^θ)=0: il metodo di arrotondamento non produce distorsione.

    • Ε(θ^θ)>0: 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 arrotondamentoCostoDistorsione
CeilingBassoGrande positiva
ConvergentAltoSenza distorsione
ZeroBasso
  • Grande positiva per campioni negativi

  • Senza distorsione per campioni con valori positivi e negativi distribuiti uniformemente

  • Grande negativa per campioni positivi

FloorBassoGrande negativa
NearestMedioPiccola positiva
RoundAlto
  • Piccola negativa per campioni negativi

  • Senza distorsione per campioni con valori positivi e negativi distribuiti uniformemente

  • Piccola positiva per campioni positivi

Simplest
(solo Simulink®)
BassoDipende dall’operazione