Main Content

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 wl, de mise à l’échelle S et de biais B 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 2wl1 mais pas pour 2wl1 :

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’objets fi et l’arithmétique fi.

  • 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éthode round 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 : Ε(θ^θ) ?

    • Ε(θ^θ)<0 — La méthode d’arrondi introduit un biais négatif.

    • Ε(θ^θ)=0 — La méthode d’arrondi n'est pas biaisée.

    • Ε(θ^θ)>0 — 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’arrondiCoûtBiais
CeilingFaibleFortement positif
ConvergentÉlevéNon biaisée
ZeroFaible
  • Fortement positif pour les échantillons négatifs

  • Non biaisée pour les échantillons avec des valeurs positives et négatives également distribuées

  • Fortement négatif pour les échantillons positifs

FloorFaibleFortement négatif
NearestModéréFaiblement positif
RoundÉlevé
  • Faiblement négatif pour les échantillons négatifs

  • Non biaisée pour les échantillons avec des valeurs positives et négatives également distribuées

  • Faiblement positif pour les échantillons positifs

Simplest
(Simulink® uniquement)
FaibleDépend de l’opération