Précision et plage
Remarque
Vous devez faire attention à la précision et à la plage des types de données à virgule fixe et des mises à l’échelle que vous choisissez afin de savoir si des méthodes d’arrondi seront nécessaires, ou si des débordements par valeurs supérieures (overflows) ou inférieures (underflows) se produiront.
Plage
La plage est l’étendue des nombres qu’un type de données à virgule fixe et une mise à l’échelle peuvent représenter. La plage des nombres représentables pour un nombre à virgule fixe en complément à deux de longueur de mot , de mise à l’échelle et de biais est illustrée ci-dessous :
Pour les nombres à virgule fixe signés et non signés de tout type de données, le nombre de configurations de bits différentes est 2wl.
Par exemple, en complément à deux, les nombres négatifs doivent être représentés ainsi que les zéros, donc la valeur maximale est 2wl -1 – 1. Étant donné qu’il n’existe qu’une seule représentation pour zéro, il y a un nombre différent de nombres positifs et de nombres négatifs. Cela signifie qu’il y a une représentation pour mais pas pour :
Traitement des overflows
Étant donné qu’un type de données à virgule fixe représente des nombres au sein d’une plage finie, des overflows et des underflows peuvent se produire si le résultat d’une opération est plus grand ou plus petit que les nombres de cette plage.
Le software Fixed-Point Designer™ vous permet soit de saturer soit d’envelopper (wrap) les overflows. La saturation représente les overflows positifs comme le nombre positif le plus grand de la plage utilisée, et les overflows négatifs comme le nombre négatif le plus grand de la plage utilisée. Le wrapping utilise l’arithmétique modulo pour reconvertir (par cast) un overflow dans la plage représentable du type de données.
Lorsque vous créez un objet fi
, tout overflow est saturé. La propriété OverflowAction
du fimath par défaut est défini sur saturate
. Vous pouvez enregistrer les overflows et les underflows en définissant la propriété LoggingMode
de l'objet fipref
sur on
.
Précision
La précision d’un nombre à virgule fixe est la différence entre les valeurs successives représentables par son type de données et sa mise à l’échelle, qui est égale à la valeur de son bit de poids le plus faible. La valeur du bit de poids le plus faible, et donc la précision du nombre, est déterminée par le nombre de bits de la fraction. Une valeur à virgule fixe peut être représentée avec une précision moitié de la précision de son type de données et sa mise à l’échelle.
Par exemple, une représentation à virgule fixe avec quatre bits à droite de la virgule binaire a une précision de 2-4 ou 0,0625, ce qui est la valeur de sont bit de poids le plus faible. Tout nombre situé dans la plage de ce type de données et de mise à l’échelle peut être représenté avec une précision (2-4)/2 ou 0,03125, ce qui est la moitié de la précision. C’est un exemple de représentation d’un nombre avec une précision finie.
Méthodes d’arrondi
Lorsqu’on représente des nombres avec une précision finie, il n’est pas possible de représenter chaque nombre de la plage disponible de manière exacte. Si un nombre ne peut pas être représenté de manière exacte par le type de données et la mise à l’échelle spécifiés, une méthode d’arrondi est utilisée pour convertir (par cast) la valeur en nombre représentable. Même si l’on perd toujours de la précision dans l’opération d’arrondi, le coût de l’opération et la quantité de biais introduite dépendent de la méthode d’arrondi elle-même. Pour vous offrir une plus grande souplesse dans le compromis entre coût et biais, le software Fixed-Point Designer supporte actuellement les méthodes d’arrondi suivantes :
Ceiling
arrondit au nombre représentable le plus proche dans la direction de l’infini positif.Convergent
arrondit au nombre représentable le plus proche. Dans le cas d’une égalité de distance du nombre représentable le plus proche,convergent
arrondit au nombre pair le plus proche. Cette approche est la méthode d’arrondi la moins biaisée de la toolbox.Zero
arrondit au nombre représentable le plus proche dans la direction de zéro.Floor
, qui est équivalent à la troncature en complément à deux, arrondit au nombre représentable le plus proche dans la direction de l’infini négatif.Nearest
arrondit au nombre représentable le plus proche. Dans le cas d’une égalité de distance du nombre représentable le plus proche,nearest
arrondit au nombre représentable le plus proche dans la direction de l’infini positif. Cette méthode d’arrondi est la méthode par défaut pour la création d’objetsfi
et l’arithmétiquefi
.Round
arrondit au nombre représentable le plus proche. Dans le cas d’une égalité de distance du nombre représentable le plus proche, la méthoderound
arrondit :Les nombres positifs au nombre représentable le plus proche dans la direction de l’infini positif.
Les nombres négatifs au nombre représentable le plus proche dans la direction de l’infini négatif.
Choix d’une méthode d’arrondi. Chaque méthode d’arrondi possède un ensemble de propriétés inhérentes. En fonction des exigences de votre design, ces propriétés peuvent rendre une méthode d’arrondi plus ou moins intéressante pour vous. Pour déterminer la méthode d’arrondi qui conviendra le mieux à vos besoins, vous devez connaître les exigences liées à votre design et comprendre les propriétés de chaque méthode. Les propriétés les plus importantes qui entrent en jeu sont :
Le coût — Indépendamment du hardware utilisé, quelles dépenses en traitement la méthode d’arrondi entraîne-t-elle ?
Faible — La méthode requiert peu de cycles de traitement.
Modéré — La méthode requiert un nombre modéré de cycles de traitement.
Élevé — La méthode requiert un plus grand nombre de cycles de traitement.
Remarque
Les estimations fournies ici en termes de coûts ne dépendent pas du hardware. Certains processeurs étant dotés de modes d’arrondi prédéfinis, tenez compte du hardware que vous utilisez avant de calculer le coût réel de chaque mode d’arrondi.
Biais — Quelle est la valeur attendue des valeurs arrondies moins les valeurs originales : ?
— La méthode d’arrondi introduit un biais négatif.
— La méthode d’arrondi n'est pas biaisée.
— La méthode d’arrondi introduit un biais positif.
Le tableau suivant permet de comparer les différentes méthodes d’arrondi disponibles dans le produit Fixed-Point Designer.
Fixed-Point Designer Mode d’arrondi | Coût | Biais |
---|---|---|
Ceiling | Faible | Fortement positif |
Convergent | Élevé | Non biaisée |
Zero | Faible |
|
Floor | Faible | Fortement négatif |
Nearest | Modéré | Faiblement positif |
Round | Élevé |
|
Simplest (Simulink® uniquement) | Faible | Dépend de l’opération |