• Aucun résultat trouvé

Des filtres aux produits scalaires

Hε: z→CZ(zInAZ)−1BZ+DZ, ∀z ∈ C (3.26) avec

AZ = KJ−1M + P, BZ = KJ−1Mt+Mx,

CZ = LJ−1M + R, DZ = LJ−1Mt+My. (3.27)

Démonstration. La fonction de transfert s’obtient, à partir de la matrice Z

d’une SIF, par l’équation (1.44), et par correspondance avec la matriceZ des coefficients de Hεdonnée par l’équation 3.25.

Finalement, le corollaire 3.1 donne le vecteur d’intervalles de l’erreur glo-bale (ou les moments d’ordre 1 et deux si les erreurs sont modélisées par des

bruits) en l’appliquant au filtre Hε et à l’entrée     u(k) εt(k) εx(k) εy(k)   

(et non seulement

ε(k) comme c’est le cas pourHε).

Remarque 3.7. Étant donné que cette approche de propagation de l’ensemble des erreurs est très récente dans nos travaux (la SIF de Hεet ce qui en découle ont été déterminés à un moment avancé de la rédaction de cette thèse), on préférera utiliser l’analyse de l’erreur de calcul par le filtreHε. Cependant, on montrera dans l’exemple 4.5.1une application de cette analyse de l’erreur par le filtre Hε dans le cas d’un state-space.

Pour appliquer ces nouvelles propriétés, il faut comprendre comment sont calculés les algorithmes de filtre linéaires. Cette information nous sera utile notamment pour déterminer comment évaluer les erreurs de calculs.

3.3 Des filtres aux produits scalaires

Cette partie présente la relation étroite un filtre linéaire et un produit scalaire constantes par variables. En effet ce genre de produit scalaire est à la base de tout algorithme de filtre LTI. Ensuite nous verrons que ces produits scalaires de filtres ont certaines propriétés intéressantes et nécessaires pour la méthode utilisée pour implémenter un filtre.

3.3. Des filtres aux produits scalaires

3.3.1 Relation entre filtres et produits scalaires

On a vu dans le chapitre 1 qu’un filtre peut être exprimé par différentes réalisations (une infinité en tenant compte des changements de bases possibles), et tous ces algorithmes sont en fait soit un, soit une succession de sommes de produits (Sum-of-Products, SoP), du type :

s = N  i=1 ci× vi= N  i=1 pi (3.28)

ci est une constante,vi une variable, et pi = ci× vi pouri = 1, . . . , N , et s

est le résultat du produit scalaire.

Il est en effet clair, si on prend l’algorithme de calcul totalement déve-loppé correspondant à la SIF, donné par les équations (1.47), qu’il s’agit d’une succession de SoP.

Cependant, on peut remarquer dans les algorithmes de filtres, les variables ont une informations temporelles (la valeur d’un signal à un instant k). En

considérant ces calculs comme des SoP comme dans l’équation (3.28), on constate qu’on perd l’information temporelle en notant simplement vi les va-riables au lieu devi(k), mais cette information est inutile pour faire le produit à calculer. De plus, on perd également l’information de rebouclage des calculs, mais cette information est également inutile car gérée à part (par le filtre Hε décrit en 3.2).

Il faut noter enfin que ces SoP ne sont pas de simples produits scalaires (c.-à-d. une expression mathématiques calculant un résultat avec pour seules informations des constantes et des variables), nous avons des informations supplémentaires dues à la particularité des filtres linéaires, comme le décrit la partie suivante.

3.3.2 Spécificités des produits scalaires de filtres

L’arithmétique d’intervalle n’est pas applicable dans le calcul des SoP (si la somme des valeurs absolues des coefficients est plus grande que 1), car cet arithmétique fait grandir les intervalles lors des calculs et ne prend donc pas en compte la corrélation entre les variables. De même, l’arithmétique affine pour-rait marcher [72], mais est inutile par l’utilisation du WCPG qui nous permet, par la proposition 3.2, de déterminer au plus juste l’intervalle d’existence du résultat d’un SoP. À partir de ce résultat, on peut appliquer une propriété de l’arithmétique en complément à deux (parfois appelée règle de Jackson) [50] sur l’ensemble des formats intermédiaires de nos oSoP.

Cette règle énonce que, dans une succession de sommes en complément à deux, certains résultats intermédiaires peuvent déborder du format donné, si le résultat est représentable sur ce format alors il est valide. Illustrons cette propriété due à l’arithmétique modulaire par un exemple.

3. Vers l’implémentation de filtres linéaires en virgule fixe

Exemple 3.1. SoitS la somme de trois entiers de largeurs 8 bits en

complé-ment à deux, par exemple104 + 82− 94. Le résultat est alors 92, qui est

repré-sentable sur 8 bits dans l’intervalle[−128; 127]. Si on calcule d’abord 104 + 82,

le résultat, 186, n’est pas représentable sur cet intervalle, il y a donc débor-dement et l’arithmétique modulaire donne (en réinterprétant les bits restants comme un nouveau nombre en complément à deux) −70 sur 8 bits. Le dernier

calcul, −70 − 94 produit également un débordement (−164 ∈ [−128; 127]), et

par arithmétique modulaire on obtient, de la même manière,92 qui est bien le résultat attendu.

Cette règle est également applicable à l’arithmétique virgule fixe [70]. Pour un SoP défini comme dans l’équation (3.28), avec(ms, s) le format du résultat connu par la proposition3.2, cela signifie qu’on peut supprimer de chaque pi

les bits dont la position est plus grands quems, puis sommer les bits restants sans considérer les bits de retenues plus grand que ms. Puisque s est connu

pour être au format (ms, s), le résultat est valide, les bits supprimés et les retenues non considérées ne peuvent effectivement pas influencer les bits de poids plus faibles.

Remarque 3.8. On peut démontrer plus formellement cette affirmation. Pour cela, il est nécessaire de réinterpréter les produits en des nombres non signés, de calculer la somme modulo 2ms (pour supprimer les bits de poids forts des

pi et les éventuelles retenues indésirées) des nombres positifs obtenus, et de réinterpréter la somme dans la représentation signée.

L’opération de passage de la représentation signée à la représentation non signée est décrite par l’équation suivante pour un entierX :



X = (X + 2m+1) mod 2m+1, (3.29)

où X est la réinterprétation de X en non signé. L’opération inverse s’obtient

par :

X = (( X + 2ms) mod 2m+1)− 2ms. (3.30) Enfin, la somme de deux termes non signés X et Y s’obtient, comme en signé,

par complément à deux, en calculant ( X + Y ) mod 2ms.

Pour appliquer cette méthode à des nombres en virgules fixe, il suffit de l’ap-pliquer à leurs mantisses (toutes alignées sur le même format), et de multiplier le résultat par le facteur d’échelle2s.

Remarque 3.9. Il est important de noter que les équations de la remarque précédentes expriment mathématiquement la réinterprétation des bits restants après suppressions des bits de poids forts superflus. Dans les faits, cette règle est appliqué automatiquement si les opérateurs et registres utilisent l’arithmétique modulaire en cas de débordement, ce qui est généralement le cas. En effet, en langage C par exemple, si on veut stocker un nombre de plus de 16 bits de large dans une variable définie sur 16 bits par un entier de type int16_t, la 90