SlideShare una empresa de Scribd logo
1 de 92
Descargar para leer sin conexión
Implémentation optimale de filtres linéaires en
arithmétique virgule fixe
Soutenance de thèse de
Benoit Lopez (LIP6, UPMC)
Directeur de thèse : L.-S. Didier (IMATH, Univ. de Toulon)
Co-encadrant de thèse : T. Hilaire (LIP6, UPMC)
B. Lopez (LIP6, UPMC) Soutenance de thèse 1 / 47
Contexte
D’un côté un filtre...
x[n]
z 1
z 1
z 1
h[0] h[1] h[2] h[3]
y[n]
x[n]
y[n]
z 1
z 1
z 1
h[0] h[1] h[2] h[3]
L M H(z)
Weird
Stu
0 10 20 30 40 50 60 70 80 90 100
−5
−4.5
−4
−3.5
−3
−2.5
−2
−1.5
−1
−0.5
0
H
0 10 20 30 40 50 60 70 80 90 100
−8
−7
−6
−5
−4
−3
−2
−1
0
Traitement du signal
Filtre linéaire et invariant dans le temps
À coefficients réels
B. Lopez (LIP6, UPMC) Soutenance de thèse 2 / 47
Contexte
D’un côté un filtre...
x[n]
z 1
z 1
z 1
h[0] h[1] h[2] h[3]
y[n]
x[n]
y[n]
z 1
z 1
z 1
h[0] h[1] h[2] h[3]
L M H(z)
Weird
Stu
0 10 20 30 40 50 60 70 80 90 100
−5
−4.5
−4
−3.5
−3
−2.5
−2
−1.5
−1
−0.5
0
H
0 10 20 30 40 50 60 70 80 90 100
−8
−7
−6
−5
−4
−3
−2
−1
0
Traitement du signal
Filtre linéaire et invariant dans le temps
À coefficients réels
B. Lopez (LIP6, UPMC) Soutenance de thèse 2 / 47
Contexte
... de l’autre une cible – 1
Système embarqué matériel ou logiciel
On ne peut pas représenter les réels, et pour des raisons de ressources
on utilise l’arithmétique virgule fixe.
B. Lopez (LIP6, UPMC) Soutenance de thèse 3 / 47
Contexte
... de l’autre une cible – 2
x[n]
z 1
z 1
z 1
h[0] h[1] h[2] h[3]
y[n]
x[n]
y[n]
z 1
z 1
z 1
h[0] h[1] h[2] h[3]
L M H(z)
Weird
Stu
H
On a besoin d’une méthodologie et d’outils pour
implémenter ces filtres linéaires réels en virgule fixe.
B. Lopez (LIP6, UPMC) Soutenance de thèse 4 / 47
Contexte
L’implémentation en virgule fixe est difficile
Implémentation à partir d’un algorithme réel =) dégradations numériques
B. Lopez (LIP6, UPMC) Soutenance de thèse 5 / 47
Contexte
L’implémentation en virgule fixe est difficile
Implémentation à partir d’un algorithme réel =) dégradations numériques
Origines des dégradations
Quantification des coefficients réels
Arrondis dans les calculs
B. Lopez (LIP6, UPMC) Soutenance de thèse 5 / 47
Contexte
L’implémentation en virgule fixe est difficile
Implémentation à partir d’un algorithme réel =) dégradations numériques
Origines des dégradations
Quantification des coefficients réels
Arrondis dans les calculs
Les dégradations dépendent de
l’algorithme utilisé pour décrire le filtre
la façon dont sont effectués les calculs
B. Lopez (LIP6, UPMC) Soutenance de thèse 5 / 47
Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
Pour répondre à cette question, plusieurs étapes sont nécessaires :
Formaliser précisément l’arithmétique virgule fixe
B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
Pour répondre à cette question, plusieurs étapes sont nécessaires :
Formaliser précisément l’arithmétique virgule fixe
Exploiter les propriétés des filtres linéaires
B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
Pour répondre à cette question, plusieurs étapes sont nécessaires :
Formaliser précisément l’arithmétique virgule fixe
Exploiter les propriétés des filtres linéaires
Décrire une méthodologie pour le logiciel et une autre pour le matériel
B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
Pour répondre à cette question, plusieurs étapes sont nécessaires :
Formaliser précisément l’arithmétique virgule fixe
Exploiter les propriétés des filtres linéaires
Décrire une méthodologie pour le logiciel et une autre pour le matériel
Proposer un outil pour mettre en œuvre l’ensemble de cette démarche
B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
Contexte
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Implémentation
matérielle
L’outil
FiPoGen
B. Lopez (LIP6, UPMC) Soutenance de thèse 7 / 47
Contexte
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Implémentation
matérielle
L’outil
FiPoGen
B. Lopez (LIP6, UPMC) Soutenance de thèse 7 / 47
Arithmétique virgule Fixe
Virgule Fixe
s
m + 1 `
w
2m
20 2 12m 1 2`
un entier multiplié par un facteur d’échelle fixe : x = X · 2`
un format virgule fixe : (m, `)
une largeur : w
arithmétique signée en complément à deux
Le facteur d’échelle est implicite : le développeur sait où sont les virgules,
mais le code implanté est uniquement basé sur des calculs en nombres
entiers.
B. Lopez (LIP6, UPMC) Soutenance de thèse 8 / 47
Formalisme
virgule fixe
Arithmétique virgule Fixe
Virgule Fixe
s
m + 1 `
w
2m
20 2 12m 1 2`
un entier multiplié par un facteur d’échelle fixe : x = X · 2`
un format virgule fixe : (m, `)
une largeur : w
arithmétique signée en complément à deux
Première contribution
Une formalisation détaillée de l’arithmétique virgule fixe pour les
algorithmes de filtres linéaires.
B. Lopez (LIP6, UPMC) Soutenance de thèse 8 / 47
Formalisme
virgule fixe
Filtres linéaires et réalisations équivalentes
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Implémentation
matérielle
L’outil
FiPoGen
B. Lopez (LIP6, UPMC) Soutenance de thèse 9 / 47
Filtres linéaires et réalisations équivalentes
Filtres Linéaires
H
u(k) y(k)
LTI : Filtres linéaires invariants dans le temps
FIR (réponse impulsionnelle finie) :
H(z) =
nX
i=0
bi z i
, ) y(k) =
nX
i=0
bi u(k i)
IIR (réponse impulsionnelle infinie) :
H(z) =
Pn
i=0 bi z i
1 +
Pn
i=1 ai z i
, ) y(k) =
nX
i=0
bi u(k i)
nX
i=1
ai y(k i)
B. Lopez (LIP6, UPMC) Soutenance de thèse 10 / 47
Pré-requis
sur les filtres
Filtres linéaires et réalisations équivalentes
Filtres Linéaires
LTI : Filtres linéaires invariants dans le temps
FIR (réponse impulsionnelle finie) :
H(z) =
nX
i=0
bi z i
, ) y(k) =
nX
i=0
bi u(k i)
IIR (réponse impulsionnelle infinie) :
H(z) =
Pn
i=0 bi z i
1 +
Pn
i=1 ai z i
, ) y(k) =
nX
i=0
bi u(k i)
nX
i=1
ai y(k i)
On a un premier algorithme (ou réalisation) exprimant à chaque instant la
sortie y(k) en fonction de l’entrée u(k), mais ce n’est pas le seul.
B. Lopez (LIP6, UPMC) Soutenance de thèse 10 / 47
Pré-requis
sur les filtres
Filtres linéaires et réalisations équivalentes
Réalisations équivalentes
Pour un filtre LTI donné, il y a de nombreuses façons de décrire la relation
entre u(k) et y(k).
B. Lopez (LIP6, UPMC) Soutenance de thèse 11 / 47
Pré-requis
sur les filtres
Filtres linéaires et réalisations équivalentes
Réalisations équivalentes
Pour un filtre LTI donné, il y a de nombreuses façons de décrire la relation
entre u(k) et y(k).
Toutes ces réalisations sont équivalentes en précision infinie mais ne le sont
plus en précision finie.
La dégradation en précision finie dépend du choix de la réalisation.
B. Lopez (LIP6, UPMC) Soutenance de thèse 11 / 47
Pré-requis
sur les filtres
Filtres linéaires et réalisations équivalentes
Réalisations équivalentes
Pour un filtre LTI donné, il y a de nombreuses façons de décrire la relation
entre u(k) et y(k).
Toutes ces réalisations sont équivalentes en précision infinie mais ne le sont
plus en précision finie.
La dégradation en précision finie dépend du choix de la réalisation.
Par exemple
Forme directe I
State-space
Forme directe II transposée avec opérateur ⇢
Structure LGS
etc.
B. Lopez (LIP6, UPMC) Soutenance de thèse 11 / 47
Pré-requis
sur les filtres
SIF
Une structure unificatrice
On peut décrire toutes ces réalisations sous la forme d’une structure
commune appelée forme implicite spécialisée (SIF).
Description matricielle des calculs
Explicite les opérations et leurs liens
0
@
J 0 0
K I 0
L 0 I
1
A
0
@
T(k + 1)
X(k + 1)
Y (k)
1
A =
0
@
0 M N
0 P Q
0 R S
1
A
0
@
T(k)
X(k)
U(k)
1
A
B. Lopez (LIP6, UPMC) Soutenance de thèse 12 / 47
Pré-requis
sur les filtres
SIF
Une structure unificatrice
On peut décrire toutes ces réalisations sous la forme d’une structure
commune appelée forme implicite spécialisée (SIF).
Description matricielle des calculs
Explicite les opérations et leurs liens
8
<
:
J · T(k + 1) M · X(k) + N · U(k)
X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k)
Y (k) L · T(k + 1) + R · X(k) + S · U(k)
B. Lopez (LIP6, UPMC) Soutenance de thèse 12 / 47
Pré-requis
sur les filtres
SIF
Une structure unificatrice
On peut décrire toutes ces réalisations sous la forme d’une structure
commune appelée forme implicite spécialisée (SIF).
Description matricielle des calculs
Explicite les opérations et leurs liens
8
<
:
J · T(k + 1) M · X(k) + N · U(k)
X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k)
Y (k) L · T(k + 1) + R · X(k) + S · U(k)
En développant une méthodologie autour de la forme implicite spécialisée,
on rend cette méthodologie applicable à toutes les réalisations.
B. Lopez (LIP6, UPMC) Soutenance de thèse 12 / 47
Pré-requis
sur les filtres
SIF
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Implémentation
matérielle
L’outil
FiPoGen
B. Lopez (LIP6, UPMC) Soutenance de thèse 13 / 47
Analyse d’erreur
Analyse d’erreur
+
x(k) x (k)x (k) x(k)
e(k)
Q[ ]
Quantifier un signal x(k) est équivalent à ajouter une erreur e(k) à ce
signal.
B. Lopez (LIP6, UPMC) Soutenance de thèse 14 / 47
Analyse
des filtres,
premiers outils
Analyse d’erreur
Analyse d’erreur
À l’implémentation, l’algorithme
H
8
<
:
J · T(k + 1) M · X(k) + N · U(k)
X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k)
Y (k) L · T(k + 1) + R · X(k) + S · U(k)
B. Lopez (LIP6, UPMC) Soutenance de thèse 15 / 47
Analyse d’erreur
Analyse d’erreur
À l’implémentation, l’algorithme
H
8
<
:
J · T(k + 1) M · X(k) + N · U(k)
X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k)
Y (k) L · T(k + 1) + R · X(k) + S · U(k)
devient
H⇤
8
<
:
J · T⇤(k + 1) M · X⇤(k) + N · U(k) + "T (k)
X⇤(k + 1) K · T⇤(k + 1) + P · X⇤(k) + Q · U(k) + "X (k)
Y ⇤(k) L · T⇤(k + 1) + R · X⇤(k) + S · U(k) + "Y (k)
Les erreurs d’arrondi mènent à l’addition d’une erreur globale "(k) :
"(k) ,
0
@
"T (k)
"X (k)
"Y (k)
1
A
B. Lopez (LIP6, UPMC) Soutenance de thèse 15 / 47
Analyse d’erreur
Analyse d’erreur
H⇤
u(k)
"(k)
y⇤(k)
()
H
H"
u(k)
"(k)
+
y(k)
y(k)
y⇤(k)
On veut déterminer y(k) = y⇤(k) y(k).
B. Lopez (LIP6, UPMC) Soutenance de thèse 16 / 47
Analyse
des filtres,
premiers outils
Analyse d’erreur
Analyse d’erreur
H⇤
u(k)
"(k)
y⇤(k)
()
H
H"
u(k)
"(k)
+
y(k)
y(k)
y⇤(k)
On veut déterminer y(k) = y⇤(k) y(k).
on a besoin d’évaluer "(k)
on a besoin de connaître le comportement de "(k) à travers H"
B. Lopez (LIP6, UPMC) Soutenance de thèse 16 / 47
Analyse
des filtres,
premiers outils
Analyse d’erreur
Analyse d’erreur
Évaluer l’erreur de calcul "(k), c’est déterminer les calculs qui produisent
des erreurs d’arrondi.
H
8
<
:
J · T(k + 1) M · X(k) + N · U(k)
X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k)
Y (k) L · T(k + 1) + R · X(k) + S · U(k)
B. Lopez (LIP6, UPMC) Soutenance de thèse 17 / 47
Analyse
des filtres,
premiers outils
Analyse d’erreur
Analyse d’erreur
Évaluer l’erreur de calcul "(k), c’est déterminer les calculs qui produisent
des erreurs d’arrondi.
H
8
<
:
J · T(k + 1) M · X(k) + N · U(k)
X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k)
Y (k) L · T(k + 1) + R · X(k) + S · U(k)
On a besoin de connaître les positions des virgules des variables t, x et y.
Connaître le comportement du signal u à travers H.
B. Lopez (LIP6, UPMC) Soutenance de thèse 17 / 47
Analyse
des filtres,
premiers outils
Analyse d’erreur
Propriété des filtres linéaires
Approche classique du comportement d’un signal d’entrée u à travers un
filtre linéaire H.
H
u(k)
µu, u
y(k)
µy , y
2
Traitement du signal
µu : moyenne
u : variance
hhHiiDC : DC-Gain de H
kHk2 : norme L2 de H
Proposition
µy = hhHiiDC · µu
2
y = kH · 'uk2
2
B. Lopez (LIP6, UPMC) Soutenance de thèse 18 / 47
Analyse
des filtres,
premiers outils
Analyse d’erreur
Propriété des filtres linéaires
Nouvelle approche du comportement d’un signal d’entrée u à travers un
filtre linéaire H.
H
u(k)
hum, ur i
y(k)
hym, yr i
Intervalle
um : centre
ur : rayon
hhHiiDC : DC-Gain de H
hhHiiWCPG : WCPG de H
Théorème du WCPG
ym = hhHiiDC · um
yr = hhHiiWCPG · ur
en régime permanent
B. Lopez (LIP6, UPMC) Soutenance de thèse 19 / 47
Analyse
des filtres,
premiers outils
Analyse d’erreur
Analyse d’erreur
H⇤
u(k)
"(k)
y⇤(k)
()
H
H"
u(k)
"(k)
+
y(k)
y(k)
y⇤(k)
Avec notre nouvelle approche, nous sommes donc capable de déterminer
l’intervalle de l’erreur y(k).
B. Lopez (LIP6, UPMC) Soutenance de thèse 20 / 47
Analyse
des filtres,
premiers outils
Analyse d’erreur
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Implémentation
matérielle
L’outil
FiPoGen
B. Lopez (LIP6, UPMC) Soutenance de thèse 21 / 47
Analyse d’erreur
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Implémentation
matérielle
L’outil
FiPoGen
B. Lopez (LIP6, UPMC) Soutenance de thèse 21 / 47
Implémentation logicielle
Implémentation logicielle
Méthodologie pour l’implémentation logicielle
Filtre
(SIF)
Filtre ! SoPs
un SoP Conversion
virgule fixe
SoP
virgule
fixe
oSoPs :
Génération
Propagation
Évaluation
le meilleur
oSoP Génération
de code
Codes FxP
SoP suivant
Spécifications matérielles
B. Lopez (LIP6, UPMC) Soutenance de thèse 22 / 47
Implémentation
logicielle
Implémentation logicielle
Implémentation logicielle
Méthodologie pour l’implémentation logicielle
Filtre
(SIF)
Filtre ! SoPs
un SoP Conversion
virgule fixe
SoP
virgule
fixe
oSoPs :
Génération
Propagation
Évaluation
le meilleur
oSoP Génération
de code
Codes FxP
SoP suivant
Spécifications matérielles
B. Lopez (LIP6, UPMC) Soutenance de thèse 22 / 47
Implémentation
logicielle
Implémentation logicielle
Implémentation logicielle
Les seules opérations nécessaires sont des sommes-de-produits :
S =
nX
i=1
ci · vi
où les ci sont des constantes connues et les vi des variables (d’entrée,
d’état, ou intermédiaires).
B. Lopez (LIP6, UPMC) Soutenance de thèse 23 / 47
Implémentation
logicielle
Implémentation logicielle
Implémentation logicielle
Les seules opérations nécessaires sont des sommes-de-produits :
S =
nX
i=1
ci · vi
où les ci sont des constantes connues et les vi des variables (d’entrée,
d’état, ou intermédiaires).
L’addition en logiciel peut ne pas être associative à cause des décalages.
On considère alors des sommes-de-produits ordonnées (oSoP).
B. Lopez (LIP6, UPMC) Soutenance de thèse 23 / 47
Implémentation
logicielle
Implémentation logicielle
Implémentation logicielle - oSoP
S
+
+
+
⇥
20832
(-1,-16)
v4
(5,-10)
⇥
-16450
(-1,-16)
v5
(5,-10)
⇥
-19744
(0,-15)
v0
(5,-10)
+
+
+
⇥
22782
( 5, 20)
v1
(5, 10)
⇥
32159
( 5, 20)
v6
(5, 10)
⇥
26997
( 4, 19)
v3
(5, 10)
⇥
25313
( 3, 18)
v2
(5, 10)
(5,-10)
B. Lopez (LIP6, UPMC) Soutenance de thèse 24 / 47
Implémentation
logicielle
Implémentation logicielle
Implémentation logicielle - oSoP
S
+
+
+
⇥
20832
(-1,-16)
v4
(5,-10)
⇥
-16450
(-1,-16)
v5
(5,-10)
+
⇥
-19744
(0,-15)
v0
(5,-10)
⇥
22782
( 5, 20)
v1
(5, 10)
+
+
⇥
32159
( 5, 20)
v6
(5, 10)
⇥
26997
( 4, 19)
v3
(5, 10)
⇥
25313
( 3, 18)
v2
(5, 10)
(5,-10)
B. Lopez (LIP6, UPMC) Soutenance de thèse 24 / 47
Implémentation
logicielle
Implémentation logicielle
Implémentation logicielle - oSoP
S
+
+
+
⇥
20832
(-1,-16)
v4
(5,-10)
⇥
-16450
(-1,-16)
v5
(5,-10)
+
⇥
-19744
(0,-15)
v0
(5,-10)
⇥
22782
( 5, 20)
v1
(5, 10)
+
+
⇥
32159
( 5, 20)
v6
(5, 10)
⇥
26997
( 4, 19)
v3
(5, 10)
⇥
25313
( 3, 18)
v2
(5, 10)
(5,-10)
Il y a
nQ
i=1
(2i 1) oSoP à considérer.
B. Lopez (LIP6, UPMC) Soutenance de thèse 24 / 47
Implémentation
logicielle
Implémentation logicielle
Implémentation logicielle - Propagation
Pour chaque oSoP, on propage les intervalles des variables vers la sortie en
utilisant l’arithmétique d’intervalle et l’arithmétique virgule fixe.
S
+
+
+
⇥
20832
(-1,-16)
v4
(5,-10)
⇥
-16450
(-1,-16)
v5
(5,-10)
⇥
-19744
(0,-15)
v0
(5,-10)
+
+
+
⇥
22782
( 5, 20)
v1
(5, 10)
⇥
32159
( 5, 20)
v6
(5, 10)
⇥
26997
( 4, 19)
v3
(5, 10)
⇥
25313
( 3, 18)
v2
(5, 10)
(5,-10)
B. Lopez (LIP6, UPMC) Soutenance de thèse 25 / 47
Implémentation
logicielle
Implémentation logicielle
Implémentation logicielle - Propagation
Pour chaque oSoP, on propage les intervalles des variables vers la sortie en
utilisant l’arithmétique d’intervalle et l’arithmétique virgule fixe.
S
+
+
+
⇥
20832
(-1,-16)
y[k 1]
(5,-10)
(5,-10)
⇥
-16450
(-1,-16)
y[k 2]
(5,-10)
(5,-10)
(5,-10)
⌧ 0
⇥
-19744
(0,-15)
u[k]
(5,-10)
(6,-9)
(5,-10)
(5,-10)
2
+
1
+
1
+
⇥
22782
(-5,-20)
u[k 1]
(5,-10)
(1,-14)
⇥
-32159
(-5,-20)
y[k 3]
(5,-10)
(1,-14)
(1,-14)
(2,-13)
⇥
-26997
(-4,-19)
u[k 3]
(5,-10)
(2,-13)
(2,-13)
(3,-12)
⇥
-25313
(-3,-18)
u[k 2]
(5,-10)
(3,-12)
(3,-12)
(5,-10)
(5,-10)
B. Lopez (LIP6, UPMC) Soutenance de thèse 25 / 47
Implémentation
logicielle
Implémentation logicielle
Implémentation logicielle - Évaluation / Sélection
Évaluation
À chaque formatage correspond une erreur (un bruit ou un intervalle) que
l’on sait évaluer.
On en déduit l’erreur cumulée globale pour chaque schéma.
B. Lopez (LIP6, UPMC) Soutenance de thèse 26 / 47
Implémentation
logicielle
Implémentation logicielle
Implémentation logicielle - Évaluation / Sélection
Évaluation
À chaque formatage correspond une erreur (un bruit ou un intervalle) que
l’on sait évaluer.
On en déduit l’erreur cumulée globale pour chaque schéma.
Sélection
Plusieurs critères pour choisir le meilleur schéma :
l’erreur globale
le parallélisme
B. Lopez (LIP6, UPMC) Soutenance de thèse 26 / 47
Implémentation
logicielle
Implémentation matérielle
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Implémentation
matérielle
L’outil
FiPoGen
B. Lopez (LIP6, UPMC) Soutenance de thèse 27 / 47
Implémentation matérielle
Implémentation matérielle
Méthodologie pour l’implémentation matérielle
Filtre
Filtre ! SoPs
N SoPs
Expression
contraintes
d’optimisation
fichier
description
AMPL
Résolution
par Bonmin
ensemble
de largeurs
Génération
schéma
virgule fixe
Schéma
virgule
fixe Génération de
l’architecture
Architecture
B. Lopez (LIP6, UPMC) Soutenance de thèse 28 / 47
Implémentation
matérielle
Implémentation matérielle
Implémentation matérielle
Méthodologie pour l’implémentation matérielle
Filtre
Filtre ! SoPs
N SoPs
Expression
contraintes
d’optimisation
fichier
description
AMPL
Résolution
par Bonmin
ensemble
de largeurs
Génération
schéma
virgule fixe
Schéma
virgule
fixe Génération de
l’architecture
Architecture
B. Lopez (LIP6, UPMC) Soutenance de thèse 28 / 47
Implémentation
matérielle
Implémentation matérielle
Implémentation matérielle
Choix sur les largeurs =) Problème d’optimisation combinatoire
Notations
v = Z · vin
v ,
0
@
t(k + 1)
x(k + 1)
y(k)
1
A , Z ,
0
@
J0 M N
K P Q
L R S
1
A , et vin ,
0
@
t(k)
x(k)
u(k)
1
A .
B. Lopez (LIP6, UPMC) Soutenance de thèse 29 / 47
Implémentation
matérielle
Implémentation matérielle
Implémentation matérielle
Choix sur les largeurs =) Problème d’optimisation combinatoire
Notations
v = Z · vin
v ,
0
@
t(k + 1)
x(k + 1)
y(k)
1
A , Z ,
0
@
J0 M N
K P Q
L R S
1
A , et vin ,
0
@
t(k)
x(k)
u(k)
1
A .
Problème d’optimisation
min f (wZ , wv )
tel que gi (wZ , wv )  0
B. Lopez (LIP6, UPMC) Soutenance de thèse 29 / 47
Implémentation
matérielle
Implémentation matérielle
Implémentation matérielle
Choix sur les largeurs =) Problème d’optimisation combinatoire
Notations
v = Z · vin
v ,
0
@
t(k + 1)
x(k + 1)
y(k)
1
A , Z ,
0
@
J0 M N
K P Q
L R S
1
A , et vin ,
0
@
t(k)
x(k)
u(k)
1
A .
Problème d’optimisation
min f (wZ , wv ) =
X
i,j
wZi,j
+
X
i
wvi
tel que gi (wZ , wv )  0
B. Lopez (LIP6, UPMC) Soutenance de thèse 29 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Formatage de bits
s
s
s
s
s
s
s s
s sf
Contexte
Une somme de N termes (pi )1iN avec différents formats, et le FPF de la
somme finale connu, dont la largeur est plus petite que la largeur de la
somme exacte.
B. Lopez (LIP6, UPMC) Soutenance de thèse 30 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Formatage de bits
s
s
s
s
s
s
s s
s s0
f
Formatage
On peut limiter le nombre de bits et obtenir un arrondi fidèle.
B. Lopez (LIP6, UPMC) Soutenance de thèse 30 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Formatage de bits
s
s
s
s
s
s
s s
s s0
f
Calcul de
Arrondi
Troncature blog2(N 1)c + 1
Au plus proche blog2(N)c + 1
B. Lopez (LIP6, UPMC) Soutenance de thèse 30 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Formatage de bits
Produit constante / variable
Les constantes ci sont des constantes réelles arrondies.
L’erreur sur ci est plus petite que le bit en position `ci .
s ci (mci , `ci )
s vi (mvi , `vi )⇥
B. Lopez (LIP6, UPMC) Soutenance de thèse 31 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Formatage de bits
Produit constante / variable
Les constantes ci sont des constantes réelles arrondies.
L’erreur sur ci est plus petite que le bit en position `ci .
s ci (mci , `ci )
s vi (mvi , `vi )
wvi 1
s
`ci + `vi
⇥
B. Lopez (LIP6, UPMC) Soutenance de thèse 31 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Formatage de bits
Produit constante / variable
Les constantes ci sont des constantes réelles arrondies.
L’erreur sur ci est plus petite que le bit en position `ci .
s ci (mci , `ci )
s vi (mvi , `vi )
wvi 1
s
`ci + `vi
⇥
L’erreur se propage sur les bits en position `ci + mvi et inférieures.
B. Lopez (LIP6, UPMC) Soutenance de thèse 31 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Formatage de bits
On combine le formatage avec l’observation précédente pour obtenir la
contrainte suivante :
`s > `ci + mvi , 8i
s
s
s
s
s
s
s s
s s0
f
B. Lopez (LIP6, UPMC) Soutenance de thèse 32 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Formatage de bits
On combine le formatage avec l’observation précédente pour obtenir la
contrainte suivante :
`s > `ci + mvi , 8i
Contraintes de formatage de bits
Avec les notations de la SIF
wZi,j
wvi Ci,j , 8i, j.
B. Lopez (LIP6, UPMC) Soutenance de thèse 32 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Erreur sur la sortie
H
H"
u(k)
"(k)
+
y(k)
y(k)
y⇤(k)
On veut borner l’erreur sur la sortie y par ⇠ :
[ y; y] ⇢ [ ⇠; ⇠]
B. Lopez (LIP6, UPMC) Soutenance de thèse 33 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Erreur sur la sortie
H
H"
u(k)
"(k)
+
y(k)
y(k)
y⇤(k)
On veut borner l’erreur sur la sortie y par ⇠ :
[ y; y] ⇢ [ ⇠; ⇠]
y < ⇠
y < ⇠
B. Lopez (LIP6, UPMC) Soutenance de thèse 33 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Erreur sur la sortie
H
H"
u(k)
"(k)
+
y(k)
y(k)
y⇤(k)
On veut borner l’erreur sur la sortie y par ⇠ :
[ y; y] ⇢ [ ⇠; ⇠]
y < ⇠ !
X
j
aj
2wvj
< 1
y < ⇠ !
X
j
dj
2wvj
< 1
B. Lopez (LIP6, UPMC) Soutenance de thèse 33 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Bilan
Contraintes de formatage de bits
Avec les notations de la SIF
wZi,j
wvi Ci,j , 8i, j.
Contraintes sur l’erreur
X
j
aj
2wvj
< 1,
X
j
dj
2wvj
< 1.
B. Lopez (LIP6, UPMC) Soutenance de thèse 34 / 47
Implémentation
matérielle
Implémentation matérielle
Contraintes - Bilan
Contraintes de formatage de bits
Avec les notations de la SIF
wZi,j
wvi + Ci,j , 8i, j.
Contraintes sur l’erreur
X
j
aj
2wvj
< 1,
X
j
dj
2wvj
< 1.
B. Lopez (LIP6, UPMC) Soutenance de thèse 34 / 47
Implémentation
matérielle
Implémentation matérielle
Problème d’optimisation
Finalement, le problème se formalise ainsi :
min f (wv ) =
X
i
wvi
tel que
X
j
aj
2wvj
< 1,
X
j
dj
2wvj
< 1.
Problème Convexe Non-Linéaire en Nombres Entiers
B. Lopez (LIP6, UPMC) Soutenance de thèse 35 / 47
Implémentation
matérielle
Implémentation matérielle
Problème d’optimisation
Finalement, le problème se formalise ainsi :
min f (wv ) =
X
i
wvi
tel que
X
j
aj
2wvj
< 1,
X
j
dj
2wvj
< 1.
Problème Convexe Non-Linéaire en Nombres Entiers
Résolution par le solveur Bonmin.
B. Lopez (LIP6, UPMC) Soutenance de thèse 35 / 47
Implémentation
matérielle
FiPoGen
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Implémentation
matérielle
L’outil
FiPoGen
B. Lopez (LIP6, UPMC) Soutenance de thèse 36 / 47
FiPoGen
FiPoGen (Fixed-Point code Generator)
Cet outil réalise la méthodologie proposée pour l’implémentation d’un filtre
linéaire en virgule fixe.
Développé en Python
Actuellement spécialisé dans les algorithmes de filtres linéaires
Met en œuvre aussi bien la méthodologie logicielle que matérielle
B. Lopez (LIP6, UPMC) Soutenance de thèse 37 / 47
L’outil
FiPoGen
Exemple
Exemple
Soit H un filtre aléatoire stable généré avec Matlab d’ordre 8 et H sa
fonction de transfert :
H(z) =
8P
i=0
bi z i
1 +
8P
i=0
ai z i
, 8z 2 C,
b0 = 0.940140,
b1 = 1.04326, a1 = 2.06925,
b2 = 0.292108, a2 = 1.95404,
b3 = 0.693159, a3 = 1.04616,
b4 = 0.183105, a4 = 0.0898125,
b5 = 0.270429, a5 = 0.172354,
b6 = 0.296554, a6 = 0.0730519,
b7 = 0.0311837, a7 = 0.00696194,
b8 = 0.0363021, a8 = 0.00556424.
B. Lopez (LIP6, UPMC) Soutenance de thèse 38 / 47
L’outil
FiPoGen
Exemple
Exemple
Soit H un filtre aléatoire stable généré avec Matlab d’ordre 8
−15
−10
−5
0
5
10
15
Magnitude(dB)
10
−3
10
−2
10
−1
10
0
10
1
90
135
180
225
Phase(deg)
Bode Diagram
Frequency (rad/s)
−15
−10
−5
0
5
10
15
Magnitude(dB)
10
−3
10
−2
10
−1
10
0
10
1
90
135
180
225
Phase(deg)
Frequency (rad/s)
B. Lopez (LIP6, UPMC) Soutenance de thèse 38 / 47
L’outil
FiPoGen
Exemple
Exemple
Soit H un filtre aléatoire stable généré avec Matlab d’ordre 8
−15
−10
−5
0
5
10
15
Magnitude(dB)
10
−3
10
−2
10
−1
10
0
10
1
90
135
180
225
Phase(deg)
Bode Diagram
Frequency (rad/s)
−15
−10
−5
0
5
10
15
Magnitude(dB)
10
−3
10
−2
10
−1
10
0
10
1
90
135
180
225
Phase(deg)
Frequency (rad/s)
Intervalle de sortie
On considère une entrée aléatoire u(k) 2 [ 237; 162] ⇢ [ 256; 255].
On obtient la sortie y(k) 2 [ 1235.97; 1622.63] ⇢ [ 2048; 2047].
B. Lopez (LIP6, UPMC) Soutenance de thèse 38 / 47
L’outil
FiPoGen
Exemple
Exemple - Plusieurs réalisations
Plusieurs réalisations sont considérées :
Forme Directe I
une seule somme-de-produits de 17 produits
Forme Directe II transposée avec opérateur ⇢
une matrice de taille 17 ⇥ 17 creuse
40 coefficients non triviaux
Structure LGS
une matrice de taille 185 ⇥ 185 creuse
73 coefficients non triviaux
State-space minimisant la sensibilité L2
une matrice de taille 9 ⇥ 9 dense
B. Lopez (LIP6, UPMC) Soutenance de thèse 39 / 47
L’outil
FiPoGen
Exemple
Cas logiciel
On considère les largeurs fixées suivantes
Largeurs des constantes et des différents types de variables : 16 bits
Largeurs additionneurs et multiplieurs : 32 bits
B. Lopez (LIP6, UPMC) Soutenance de thèse 40 / 47
L’outil
FiPoGen
Exemple
Cas logiciel
On considère les largeurs fixées suivantes
Largeurs des constantes et des différents types de variables : 16 bits
Largeurs additionneurs et multiplieurs : 32 bits
Réalisations
Temps Nombre Intervalles
de génération d’opérations d’erreurs
DFI 17 ⇥ et 16 + [ 2.37205; 4.21885e-15]
SIF⇢ 000
0000
03 40 ⇥ et 24 + [ 1.62242; 0.176747]
SIFLGS 020
2700
61 73 ⇥ et 34 + [ 0.608507; 5.66752]
SSL2
050
4800
87 81 ⇥ et 72 + [ 1.31393; 0.311331]
B. Lopez (LIP6, UPMC) Soutenance de thèse 40 / 47
L’outil
FiPoGen
Exemple
B. Lopez (LIP6, UPMC) Soutenance de thèse 41 / 47
L’outil
FiPoGen
Exemple
Cas matériel
Dans cet exemple, on souhaite borner l’erreur par l’intervalle [ 2; 2].
Réalisations
Temps de
Optimalité
Nombre de bits Nombre de
résolution (sec) des variables bits total
DFI – – – 670
SIF⇢ 836.15 Oui 293 1025
SIFLGS 600 ? 749 1702
SSL2
0.28 Oui 142 1642
B. Lopez (LIP6, UPMC) Soutenance de thèse 42 / 47
L’outil
FiPoGen
Exemple
B. Lopez (LIP6, UPMC) Soutenance de thèse 43 / 47
L’outil
FiPoGen
Exemple
Conclusion
Conclusion
Durant cette thèse, j’ai répondu à la question suivante :
Pour un filtre linéaire donné, comment produire l’implémentation
virgule fixe optimale ?
Plusieurs résultats ont pu être obtenus :
Formalisation détaillée de l’arithmétique virgule fixe
Analyse du comportement d’un intervalle à travers un filtre linéaire
B. Lopez (LIP6, UPMC) Soutenance de thèse 44 / 47
Exemple
Conclusion
Conclusion
Durant cette thèse, j’ai répondu à la question suivante :
Pour un filtre linéaire donné, comment produire l’implémentation
virgule fixe optimale ?
Plusieurs résultats ont pu être obtenus :
Formalisation détaillée de l’arithmétique virgule fixe
Analyse du comportement d’un intervalle à travers un filtre linéaire
Méthodologie pour les implémentations matérielle et logicielle
FiPoGen, un outil pour générer du code virgule fixe en suivant ces
méthodologies
B. Lopez (LIP6, UPMC) Soutenance de thèse 44 / 47
Exemple
Perspectives
Dans un futur proche :
Rendre FiPoGen totalement autonome du filtre au code
Fonction de coût plus réaliste : coût d’implémentation, surface, etc.
Génération des oSoPs plus performante selon les critères de sélection
Connecter FiPoGen à des outils tels que FloPoCo ou Stratus
B. Lopez (LIP6, UPMC) Soutenance de thèse 45 / 47
Exemple
Perspectives
Dans un futur proche :
Rendre FiPoGen totalement autonome du filtre au code
Fonction de coût plus réaliste : coût d’implémentation, surface, etc.
Génération des oSoPs plus performante selon les critères de sélection
Connecter FiPoGen à des outils tels que FloPoCo ou Stratus
Dans un second temps :
Chercher de nouvelles réalisations pour les filtres LTI
Considérer d’autres filtres linéaires (paramétrés, etc.)
S’intéresser à d’autres classes d’algorithmes
B. Lopez (LIP6, UPMC) Soutenance de thèse 45 / 47
Exemple
Perspectives
Dans un futur proche :
Rendre FiPoGen totalement autonome du filtre au code
Fonction de coût plus réaliste : coût d’implémentation, surface, etc.
Génération des oSoPs plus performante selon les critères de sélection
Connecter FiPoGen à des outils tels que FloPoCo ou Stratus
Dans un second temps :
Chercher de nouvelles réalisations pour les filtres LTI
Considérer d’autres filtres linéaires (paramétrés, etc.)
S’intéresser à d’autres classes d’algorithmes
Faire de FiPoGen un outil générique pour la génération
de code virgule fixe, et non uniquement pour les filtres.
B. Lopez (LIP6, UPMC) Soutenance de thèse 45 / 47
Exemple
Publications
Trois publications dans des conférences avec comité de lecture
B. Lopez, T. Hilaire, L.-S. Didier. “Sum-of-products evaluation schemes with fixed-point
arithmetic, and their application to IIR filter implementation”, DASIP 2012.
T. Hilaire, B. Lopez. “Reliable Implementation of Linear Filters with Fixed-Point
Arithmetic”, SiPS 2013.
B. Lopez, T. Hilaire, L.-S. Didier. “Formatting Bits to Better Implement Signal Processing
Algorithms”. PECCS 2014.
Une Demo Night
D. Menard et al. “Design of fixed-point embedded systems (DEFIS) French ANR project”,
DASIP 2012.
En cours
Une soumission à IEEE Circuits & Systems I est prévue avant la fin de l’année 2014.
B. Lopez (LIP6, UPMC) Soutenance de thèse 46 / 47
Exemple
Merci
B. Lopez (LIP6, UPMC) Soutenance de thèse 47 / 47
Exemple
Annexe
B. Lopez (LIP6, UPMC) Soutenance de thèse 48 / 47
Exemple
Propriété des filtres linéaires
Nouvelle approche du comportement d’un signal d’entrée u à travers un
filtre linéaire H.
H
u(k)
hum, ur i
y(k)
hym, yr i
Intervalle
um : centre
ur : rayon
hhHiiDC : DC-Gain de H
hhHiiWCPG : WCPG de H
Théorème du WCPG
ym = hhHiiDC · um
yr = hhHiiWCPG · ur
en régime permanent
B. Lopez (LIP6, UPMC) Soutenance de thèse 49 / 47
Analyse
des filtres,
premiers outils
Exemple
Propriété des filtres linéaires
Nouvelle approche du comportement d’un signal d’entrée u à travers un
filtre linéaire H.
H
u(k)
hum, ur i
y(k)
hym, yr i
Intervalle
um : centre
ur : rayon
hhHiiDC : DC-Gain de H
hhHiiWCPG : WCPG de H
Théorème du WCPG
ym = hhHiiDC · um
yr = hhHiiWCPG · ur + " · um
9K tel que 8k > K, y(k) 2 hym, yr i
B. Lopez (LIP6, UPMC) Soutenance de thèse 49 / 47
Analyse
des filtres,
premiers outils

Más contenido relacionado

La actualidad más candente

Lect14 dev2
Lect14 dev2Lect14 dev2
Lect14 dev2moisko
 
Algorithmique et programmation en Pascal (résumé)
Algorithmique et programmation en Pascal (résumé)Algorithmique et programmation en Pascal (résumé)
Algorithmique et programmation en Pascal (résumé)salah fenni
 
Seance 4- Programmation en langage C
Seance 4- Programmation en langage CSeance 4- Programmation en langage C
Seance 4- Programmation en langage CFahad Golra
 
Chapitre i rappel sur l'algèbre de boole
Chapitre i rappel sur l'algèbre de boole Chapitre i rappel sur l'algèbre de boole
Chapitre i rappel sur l'algèbre de boole Sana Aroussi
 
Scala : programmation fonctionnelle
Scala : programmation fonctionnelleScala : programmation fonctionnelle
Scala : programmation fonctionnelleMICHRAFY MUSTAFA
 
Fonctions chaine
Fonctions chaineFonctions chaine
Fonctions chaineAfef Ilahi
 
Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Fahad Golra
 
C++11 en 12 exemples simples
C++11 en 12 exemples simplesC++11 en 12 exemples simples
C++11 en 12 exemples simplesPethrvs
 
Chapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminChapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminSana Aroussi
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009Morom Bil Morom
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerSana Aroussi
 
Seance 1 - Programmation en langage C
Seance 1 - Programmation en langage CSeance 1 - Programmation en langage C
Seance 1 - Programmation en langage CFahad Golra
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court cheminSana Aroussi
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018salah fenni
 
Exercices pascal fenni_2018
Exercices pascal fenni_2018Exercices pascal fenni_2018
Exercices pascal fenni_2018salah fenni
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 

La actualidad más candente (20)

Lect14 dev2
Lect14 dev2Lect14 dev2
Lect14 dev2
 
Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
 
Algorithmique et programmation en Pascal (résumé)
Algorithmique et programmation en Pascal (résumé)Algorithmique et programmation en Pascal (résumé)
Algorithmique et programmation en Pascal (résumé)
 
Seance 4- Programmation en langage C
Seance 4- Programmation en langage CSeance 4- Programmation en langage C
Seance 4- Programmation en langage C
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
Chapitre i rappel sur l'algèbre de boole
Chapitre i rappel sur l'algèbre de boole Chapitre i rappel sur l'algèbre de boole
Chapitre i rappel sur l'algèbre de boole
 
Scala : programmation fonctionnelle
Scala : programmation fonctionnelleScala : programmation fonctionnelle
Scala : programmation fonctionnelle
 
Fonctions chaine
Fonctions chaineFonctions chaine
Fonctions chaine
 
Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C
 
C++11 en 12 exemples simples
C++11 en 12 exemples simplesC++11 en 12 exemples simples
C++11 en 12 exemples simples
 
Chapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminChapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court chemin
 
Recursiviteeeeeeeeee
RecursiviteeeeeeeeeeRecursiviteeeeeeeeee
Recursiviteeeeeeeeee
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régner
 
Seance 1 - Programmation en langage C
Seance 1 - Programmation en langage CSeance 1 - Programmation en langage C
Seance 1 - Programmation en langage C
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court chemin
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018
 
Exercices pascal fenni_2018
Exercices pascal fenni_2018Exercices pascal fenni_2018
Exercices pascal fenni_2018
 
Polymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraitePolymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraite
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 

Destacado

Baromètre de la conduite responsable - Fondation Vinci Autoroutes et Ipsos
Baromètre de la conduite responsable - Fondation Vinci Autoroutes et IpsosBaromètre de la conduite responsable - Fondation Vinci Autoroutes et Ipsos
Baromètre de la conduite responsable - Fondation Vinci Autoroutes et IpsosIpsos France
 
Gallica pour les généalogistes
Gallica pour les généalogistesGallica pour les généalogistes
Gallica pour les généalogistesCharles_Hervis
 
l'Evaporation thermique :technique de depot CVD
l'Evaporation thermique :technique de depot CVDl'Evaporation thermique :technique de depot CVD
l'Evaporation thermique :technique de depot CVDMohamed Amin Elaguech
 
Appretsupercap refait
Appretsupercap refaitAppretsupercap refait
Appretsupercap refaitibndawood
 
Placage de la lentille lunettes de soleil prada pas cher
Placage de la lentille lunettes de soleil prada pas cherPlacage de la lentille lunettes de soleil prada pas cher
Placage de la lentille lunettes de soleil prada pas cherJoe Gowey
 
Comparatif des adj et adv
Comparatif des adj et advComparatif des adj et adv
Comparatif des adj et advMmeOnsdorff
 
Desenvolvendo chrome extensions
Desenvolvendo chrome extensionsDesenvolvendo chrome extensions
Desenvolvendo chrome extensionsRodolfo Dias
 
Guia do F12: Chrome Developer Tools
Guia do F12: Chrome Developer ToolsGuia do F12: Chrome Developer Tools
Guia do F12: Chrome Developer ToolsLeonardo Tegon
 
Testando SAP com Selenium
Testando SAP com SeleniumTestando SAP com Selenium
Testando SAP com SeleniumEduardo Souza
 
Lutter contre les bactéries à Gram négatif
Lutter contre les bactéries à Gram négatifLutter contre les bactéries à Gram négatif
Lutter contre les bactéries à Gram négatifBiomin
 

Destacado (20)

Wor(l)d presentation fr
Wor(l)d presentation frWor(l)d presentation fr
Wor(l)d presentation fr
 
Linkedin CDEC 1er juin 2011
Linkedin CDEC 1er juin 2011Linkedin CDEC 1er juin 2011
Linkedin CDEC 1er juin 2011
 
Baromètre de la conduite responsable - Fondation Vinci Autoroutes et Ipsos
Baromètre de la conduite responsable - Fondation Vinci Autoroutes et IpsosBaromètre de la conduite responsable - Fondation Vinci Autoroutes et Ipsos
Baromètre de la conduite responsable - Fondation Vinci Autoroutes et Ipsos
 
Gallica pour les généalogistes
Gallica pour les généalogistesGallica pour les généalogistes
Gallica pour les généalogistes
 
Guide complet créateur_entreprise
Guide complet créateur_entrepriseGuide complet créateur_entreprise
Guide complet créateur_entreprise
 
l'Evaporation thermique :technique de depot CVD
l'Evaporation thermique :technique de depot CVDl'Evaporation thermique :technique de depot CVD
l'Evaporation thermique :technique de depot CVD
 
Chrome for Work | CLOUDPILOTS FastTrack Update
Chrome for Work | CLOUDPILOTS FastTrack UpdateChrome for Work | CLOUDPILOTS FastTrack Update
Chrome for Work | CLOUDPILOTS FastTrack Update
 
Appretsupercap refait
Appretsupercap refaitAppretsupercap refait
Appretsupercap refait
 
Placage de la lentille lunettes de soleil prada pas cher
Placage de la lentille lunettes de soleil prada pas cherPlacage de la lentille lunettes de soleil prada pas cher
Placage de la lentille lunettes de soleil prada pas cher
 
Comparatif des adj et adv
Comparatif des adj et advComparatif des adj et adv
Comparatif des adj et adv
 
Desenvolvendo chrome extensions
Desenvolvendo chrome extensionsDesenvolvendo chrome extensions
Desenvolvendo chrome extensions
 
Description Physique
Description PhysiqueDescription Physique
Description Physique
 
Review Google Chrome
Review Google ChromeReview Google Chrome
Review Google Chrome
 
Browser Mobile - Chrome
Browser Mobile - ChromeBrowser Mobile - Chrome
Browser Mobile - Chrome
 
Guia do F12: Chrome Developer Tools
Guia do F12: Chrome Developer ToolsGuia do F12: Chrome Developer Tools
Guia do F12: Chrome Developer Tools
 
Testando SAP com Selenium
Testando SAP com SeleniumTestando SAP com Selenium
Testando SAP com Selenium
 
Génie chimique - Nanomatériaux, Catalyse, Electrochimie - ULg
Génie chimique - Nanomatériaux, Catalyse, Electrochimie - ULgGénie chimique - Nanomatériaux, Catalyse, Electrochimie - ULg
Génie chimique - Nanomatériaux, Catalyse, Electrochimie - ULg
 
19
1919
19
 
Tableau tp12
Tableau tp12Tableau tp12
Tableau tp12
 
Lutter contre les bactéries à Gram négatif
Lutter contre les bactéries à Gram négatifLutter contre les bactéries à Gram négatif
Lutter contre les bactéries à Gram négatif
 

Similar a Implémentation optimale de filtres linéaires en arithmétique virgule fixe

Journ_e_des_Doctorants__JDD_.pdf
Journ_e_des_Doctorants__JDD_.pdfJourn_e_des_Doctorants__JDD_.pdf
Journ_e_des_Doctorants__JDD_.pdfAmine Hadj-Youcef
 
Journ_e_des_th_sards_2017.pdf
Journ_e_des_th_sards_2017.pdfJourn_e_des_th_sards_2017.pdf
Journ_e_des_th_sards_2017.pdfAmine Hadj-Youcef
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French CourseHaytam EL YOUSSFI
 
EUSIPCO_2017__10349172xthsfvtvhmwx_.pdf
EUSIPCO_2017__10349172xthsfvtvhmwx_.pdfEUSIPCO_2017__10349172xthsfvtvhmwx_.pdf
EUSIPCO_2017__10349172xthsfvtvhmwx_.pdfAmine Hadj-Youcef
 
Application de l’analyse des données fonctionnelles à l’identification de blé...
Application de l’analyse des données fonctionnelles à l’identification de blé...Application de l’analyse des données fonctionnelles à l’identification de blé...
Application de l’analyse des données fonctionnelles à l’identification de blé...tuxette
 
Discrimination de courbes par SVM
Discrimination de courbes par SVMDiscrimination de courbes par SVM
Discrimination de courbes par SVMtuxette
 
Discrimination de courbes par SVM
Discrimination de courbes par SVMDiscrimination de courbes par SVM
Discrimination de courbes par SVMtuxette
 
Fouille de données sur des graphes : Introduction
Fouille de données sur des graphes : IntroductionFouille de données sur des graphes : Introduction
Fouille de données sur des graphes : Introductiontuxette
 
Lucy - Librairie d'Algorithme Génétique
Lucy - Librairie d'Algorithme GénétiqueLucy - Librairie d'Algorithme Génétique
Lucy - Librairie d'Algorithme GénétiqueEric Allard
 
Restoration from Multispectral Blurred Data withNon-Stationary Instrument Res...
Restoration from Multispectral Blurred Data withNon-Stationary Instrument Res...Restoration from Multispectral Blurred Data withNon-Stationary Instrument Res...
Restoration from Multispectral Blurred Data withNon-Stationary Instrument Res...Amine Hadj-Youcef
 
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)ebruchez
 
STT5100 Automne 2020, introduction
STT5100 Automne 2020, introductionSTT5100 Automne 2020, introduction
STT5100 Automne 2020, introductionArthur Charpentier
 
Chap XI-Optimisation.pdf
Chap XI-Optimisation.pdfChap XI-Optimisation.pdf
Chap XI-Optimisation.pdfMohammed TAMALI
 
Compte-rendu bibliographique sur les réseaux biologiques III
Compte-rendu bibliographique sur les réseaux biologiques IIICompte-rendu bibliographique sur les réseaux biologiques III
Compte-rendu bibliographique sur les réseaux biologiques IIItuxette
 

Similar a Implémentation optimale de filtres linéaires en arithmétique virgule fixe (19)

Journ_e_des_Doctorants__JDD_.pdf
Journ_e_des_Doctorants__JDD_.pdfJourn_e_des_Doctorants__JDD_.pdf
Journ_e_des_Doctorants__JDD_.pdf
 
Memoire presentation v1_1
Memoire presentation v1_1Memoire presentation v1_1
Memoire presentation v1_1
 
Journ_e_des_th_sards_2017.pdf
Journ_e_des_th_sards_2017.pdfJourn_e_des_th_sards_2017.pdf
Journ_e_des_th_sards_2017.pdf
 
Expose.ppt
Expose.pptExpose.ppt
Expose.ppt
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
EUSIPCO_2017__10349172xthsfvtvhmwx_.pdf
EUSIPCO_2017__10349172xthsfvtvhmwx_.pdfEUSIPCO_2017__10349172xthsfvtvhmwx_.pdf
EUSIPCO_2017__10349172xthsfvtvhmwx_.pdf
 
Application de l’analyse des données fonctionnelles à l’identification de blé...
Application de l’analyse des données fonctionnelles à l’identification de blé...Application de l’analyse des données fonctionnelles à l’identification de blé...
Application de l’analyse des données fonctionnelles à l’identification de blé...
 
Discrimination de courbes par SVM
Discrimination de courbes par SVMDiscrimination de courbes par SVM
Discrimination de courbes par SVM
 
Actuariat et Données
Actuariat et DonnéesActuariat et Données
Actuariat et Données
 
Discrimination de courbes par SVM
Discrimination de courbes par SVMDiscrimination de courbes par SVM
Discrimination de courbes par SVM
 
Fouille de données sur des graphes : Introduction
Fouille de données sur des graphes : IntroductionFouille de données sur des graphes : Introduction
Fouille de données sur des graphes : Introduction
 
Lucy - Librairie d'Algorithme Génétique
Lucy - Librairie d'Algorithme GénétiqueLucy - Librairie d'Algorithme Génétique
Lucy - Librairie d'Algorithme Génétique
 
Restoration from Multispectral Blurred Data withNon-Stationary Instrument Res...
Restoration from Multispectral Blurred Data withNon-Stationary Instrument Res...Restoration from Multispectral Blurred Data withNon-Stationary Instrument Res...
Restoration from Multispectral Blurred Data withNon-Stationary Instrument Res...
 
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
 
STT5100 Automne 2020, introduction
STT5100 Automne 2020, introductionSTT5100 Automne 2020, introduction
STT5100 Automne 2020, introduction
 
Chap XI-Optimisation.pdf
Chap XI-Optimisation.pdfChap XI-Optimisation.pdf
Chap XI-Optimisation.pdf
 
Compte-rendu bibliographique sur les réseaux biologiques III
Compte-rendu bibliographique sur les réseaux biologiques IIICompte-rendu bibliographique sur les réseaux biologiques III
Compte-rendu bibliographique sur les réseaux biologiques III
 
Seminaire
SeminaireSeminaire
Seminaire
 
Mathématiques et Python
Mathématiques et PythonMathématiques et Python
Mathématiques et Python
 

Implémentation optimale de filtres linéaires en arithmétique virgule fixe

  • 1. Implémentation optimale de filtres linéaires en arithmétique virgule fixe Soutenance de thèse de Benoit Lopez (LIP6, UPMC) Directeur de thèse : L.-S. Didier (IMATH, Univ. de Toulon) Co-encadrant de thèse : T. Hilaire (LIP6, UPMC) B. Lopez (LIP6, UPMC) Soutenance de thèse 1 / 47
  • 2. Contexte D’un côté un filtre... x[n] z 1 z 1 z 1 h[0] h[1] h[2] h[3] y[n] x[n] y[n] z 1 z 1 z 1 h[0] h[1] h[2] h[3] L M H(z) Weird Stu 0 10 20 30 40 50 60 70 80 90 100 −5 −4.5 −4 −3.5 −3 −2.5 −2 −1.5 −1 −0.5 0 H 0 10 20 30 40 50 60 70 80 90 100 −8 −7 −6 −5 −4 −3 −2 −1 0 Traitement du signal Filtre linéaire et invariant dans le temps À coefficients réels B. Lopez (LIP6, UPMC) Soutenance de thèse 2 / 47
  • 3. Contexte D’un côté un filtre... x[n] z 1 z 1 z 1 h[0] h[1] h[2] h[3] y[n] x[n] y[n] z 1 z 1 z 1 h[0] h[1] h[2] h[3] L M H(z) Weird Stu 0 10 20 30 40 50 60 70 80 90 100 −5 −4.5 −4 −3.5 −3 −2.5 −2 −1.5 −1 −0.5 0 H 0 10 20 30 40 50 60 70 80 90 100 −8 −7 −6 −5 −4 −3 −2 −1 0 Traitement du signal Filtre linéaire et invariant dans le temps À coefficients réels B. Lopez (LIP6, UPMC) Soutenance de thèse 2 / 47
  • 4. Contexte ... de l’autre une cible – 1 Système embarqué matériel ou logiciel On ne peut pas représenter les réels, et pour des raisons de ressources on utilise l’arithmétique virgule fixe. B. Lopez (LIP6, UPMC) Soutenance de thèse 3 / 47
  • 5. Contexte ... de l’autre une cible – 2 x[n] z 1 z 1 z 1 h[0] h[1] h[2] h[3] y[n] x[n] y[n] z 1 z 1 z 1 h[0] h[1] h[2] h[3] L M H(z) Weird Stu H On a besoin d’une méthodologie et d’outils pour implémenter ces filtres linéaires réels en virgule fixe. B. Lopez (LIP6, UPMC) Soutenance de thèse 4 / 47
  • 6. Contexte L’implémentation en virgule fixe est difficile Implémentation à partir d’un algorithme réel =) dégradations numériques B. Lopez (LIP6, UPMC) Soutenance de thèse 5 / 47
  • 7. Contexte L’implémentation en virgule fixe est difficile Implémentation à partir d’un algorithme réel =) dégradations numériques Origines des dégradations Quantification des coefficients réels Arrondis dans les calculs B. Lopez (LIP6, UPMC) Soutenance de thèse 5 / 47
  • 8. Contexte L’implémentation en virgule fixe est difficile Implémentation à partir d’un algorithme réel =) dégradations numériques Origines des dégradations Quantification des coefficients réels Arrondis dans les calculs Les dégradations dépendent de l’algorithme utilisé pour décrire le filtre la façon dont sont effectués les calculs B. Lopez (LIP6, UPMC) Soutenance de thèse 5 / 47
  • 9. Contexte Problématique Question : Comment implémenter au mieux un filtre linéaire réel en virgule fixe ? B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
  • 10. Contexte Problématique Question : Comment implémenter au mieux un filtre linéaire réel en virgule fixe ? Pour répondre à cette question, plusieurs étapes sont nécessaires : Formaliser précisément l’arithmétique virgule fixe B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
  • 11. Contexte Problématique Question : Comment implémenter au mieux un filtre linéaire réel en virgule fixe ? Pour répondre à cette question, plusieurs étapes sont nécessaires : Formaliser précisément l’arithmétique virgule fixe Exploiter les propriétés des filtres linéaires B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
  • 12. Contexte Problématique Question : Comment implémenter au mieux un filtre linéaire réel en virgule fixe ? Pour répondre à cette question, plusieurs étapes sont nécessaires : Formaliser précisément l’arithmétique virgule fixe Exploiter les propriétés des filtres linéaires Décrire une méthodologie pour le logiciel et une autre pour le matériel B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
  • 13. Contexte Problématique Question : Comment implémenter au mieux un filtre linéaire réel en virgule fixe ? Pour répondre à cette question, plusieurs étapes sont nécessaires : Formaliser précisément l’arithmétique virgule fixe Exploiter les propriétés des filtres linéaires Décrire une méthodologie pour le logiciel et une autre pour le matériel Proposer un outil pour mettre en œuvre l’ensemble de cette démarche B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
  • 14. Contexte Plan Pré-requis sur les filtres Formalisme virgule fixe Analyse des filtres, premiers outils Implémentation logicielle Implémentation matérielle L’outil FiPoGen B. Lopez (LIP6, UPMC) Soutenance de thèse 7 / 47
  • 15. Contexte Plan Pré-requis sur les filtres Formalisme virgule fixe Analyse des filtres, premiers outils Implémentation logicielle Implémentation matérielle L’outil FiPoGen B. Lopez (LIP6, UPMC) Soutenance de thèse 7 / 47
  • 16. Arithmétique virgule Fixe Virgule Fixe s m + 1 ` w 2m 20 2 12m 1 2` un entier multiplié par un facteur d’échelle fixe : x = X · 2` un format virgule fixe : (m, `) une largeur : w arithmétique signée en complément à deux Le facteur d’échelle est implicite : le développeur sait où sont les virgules, mais le code implanté est uniquement basé sur des calculs en nombres entiers. B. Lopez (LIP6, UPMC) Soutenance de thèse 8 / 47 Formalisme virgule fixe
  • 17. Arithmétique virgule Fixe Virgule Fixe s m + 1 ` w 2m 20 2 12m 1 2` un entier multiplié par un facteur d’échelle fixe : x = X · 2` un format virgule fixe : (m, `) une largeur : w arithmétique signée en complément à deux Première contribution Une formalisation détaillée de l’arithmétique virgule fixe pour les algorithmes de filtres linéaires. B. Lopez (LIP6, UPMC) Soutenance de thèse 8 / 47 Formalisme virgule fixe
  • 18. Filtres linéaires et réalisations équivalentes Plan Pré-requis sur les filtres Formalisme virgule fixe Analyse des filtres, premiers outils Implémentation logicielle Implémentation matérielle L’outil FiPoGen B. Lopez (LIP6, UPMC) Soutenance de thèse 9 / 47
  • 19. Filtres linéaires et réalisations équivalentes Filtres Linéaires H u(k) y(k) LTI : Filtres linéaires invariants dans le temps FIR (réponse impulsionnelle finie) : H(z) = nX i=0 bi z i , ) y(k) = nX i=0 bi u(k i) IIR (réponse impulsionnelle infinie) : H(z) = Pn i=0 bi z i 1 + Pn i=1 ai z i , ) y(k) = nX i=0 bi u(k i) nX i=1 ai y(k i) B. Lopez (LIP6, UPMC) Soutenance de thèse 10 / 47 Pré-requis sur les filtres
  • 20. Filtres linéaires et réalisations équivalentes Filtres Linéaires LTI : Filtres linéaires invariants dans le temps FIR (réponse impulsionnelle finie) : H(z) = nX i=0 bi z i , ) y(k) = nX i=0 bi u(k i) IIR (réponse impulsionnelle infinie) : H(z) = Pn i=0 bi z i 1 + Pn i=1 ai z i , ) y(k) = nX i=0 bi u(k i) nX i=1 ai y(k i) On a un premier algorithme (ou réalisation) exprimant à chaque instant la sortie y(k) en fonction de l’entrée u(k), mais ce n’est pas le seul. B. Lopez (LIP6, UPMC) Soutenance de thèse 10 / 47 Pré-requis sur les filtres
  • 21. Filtres linéaires et réalisations équivalentes Réalisations équivalentes Pour un filtre LTI donné, il y a de nombreuses façons de décrire la relation entre u(k) et y(k). B. Lopez (LIP6, UPMC) Soutenance de thèse 11 / 47 Pré-requis sur les filtres
  • 22. Filtres linéaires et réalisations équivalentes Réalisations équivalentes Pour un filtre LTI donné, il y a de nombreuses façons de décrire la relation entre u(k) et y(k). Toutes ces réalisations sont équivalentes en précision infinie mais ne le sont plus en précision finie. La dégradation en précision finie dépend du choix de la réalisation. B. Lopez (LIP6, UPMC) Soutenance de thèse 11 / 47 Pré-requis sur les filtres
  • 23. Filtres linéaires et réalisations équivalentes Réalisations équivalentes Pour un filtre LTI donné, il y a de nombreuses façons de décrire la relation entre u(k) et y(k). Toutes ces réalisations sont équivalentes en précision infinie mais ne le sont plus en précision finie. La dégradation en précision finie dépend du choix de la réalisation. Par exemple Forme directe I State-space Forme directe II transposée avec opérateur ⇢ Structure LGS etc. B. Lopez (LIP6, UPMC) Soutenance de thèse 11 / 47 Pré-requis sur les filtres
  • 24. SIF Une structure unificatrice On peut décrire toutes ces réalisations sous la forme d’une structure commune appelée forme implicite spécialisée (SIF). Description matricielle des calculs Explicite les opérations et leurs liens 0 @ J 0 0 K I 0 L 0 I 1 A 0 @ T(k + 1) X(k + 1) Y (k) 1 A = 0 @ 0 M N 0 P Q 0 R S 1 A 0 @ T(k) X(k) U(k) 1 A B. Lopez (LIP6, UPMC) Soutenance de thèse 12 / 47 Pré-requis sur les filtres
  • 25. SIF Une structure unificatrice On peut décrire toutes ces réalisations sous la forme d’une structure commune appelée forme implicite spécialisée (SIF). Description matricielle des calculs Explicite les opérations et leurs liens 8 < : J · T(k + 1) M · X(k) + N · U(k) X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k) Y (k) L · T(k + 1) + R · X(k) + S · U(k) B. Lopez (LIP6, UPMC) Soutenance de thèse 12 / 47 Pré-requis sur les filtres
  • 26. SIF Une structure unificatrice On peut décrire toutes ces réalisations sous la forme d’une structure commune appelée forme implicite spécialisée (SIF). Description matricielle des calculs Explicite les opérations et leurs liens 8 < : J · T(k + 1) M · X(k) + N · U(k) X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k) Y (k) L · T(k + 1) + R · X(k) + S · U(k) En développant une méthodologie autour de la forme implicite spécialisée, on rend cette méthodologie applicable à toutes les réalisations. B. Lopez (LIP6, UPMC) Soutenance de thèse 12 / 47 Pré-requis sur les filtres
  • 27. SIF Plan Pré-requis sur les filtres Formalisme virgule fixe Analyse des filtres, premiers outils Implémentation logicielle Implémentation matérielle L’outil FiPoGen B. Lopez (LIP6, UPMC) Soutenance de thèse 13 / 47
  • 28. Analyse d’erreur Analyse d’erreur + x(k) x (k)x (k) x(k) e(k) Q[ ] Quantifier un signal x(k) est équivalent à ajouter une erreur e(k) à ce signal. B. Lopez (LIP6, UPMC) Soutenance de thèse 14 / 47 Analyse des filtres, premiers outils
  • 29. Analyse d’erreur Analyse d’erreur À l’implémentation, l’algorithme H 8 < : J · T(k + 1) M · X(k) + N · U(k) X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k) Y (k) L · T(k + 1) + R · X(k) + S · U(k) B. Lopez (LIP6, UPMC) Soutenance de thèse 15 / 47
  • 30. Analyse d’erreur Analyse d’erreur À l’implémentation, l’algorithme H 8 < : J · T(k + 1) M · X(k) + N · U(k) X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k) Y (k) L · T(k + 1) + R · X(k) + S · U(k) devient H⇤ 8 < : J · T⇤(k + 1) M · X⇤(k) + N · U(k) + "T (k) X⇤(k + 1) K · T⇤(k + 1) + P · X⇤(k) + Q · U(k) + "X (k) Y ⇤(k) L · T⇤(k + 1) + R · X⇤(k) + S · U(k) + "Y (k) Les erreurs d’arrondi mènent à l’addition d’une erreur globale "(k) : "(k) , 0 @ "T (k) "X (k) "Y (k) 1 A B. Lopez (LIP6, UPMC) Soutenance de thèse 15 / 47
  • 31. Analyse d’erreur Analyse d’erreur H⇤ u(k) "(k) y⇤(k) () H H" u(k) "(k) + y(k) y(k) y⇤(k) On veut déterminer y(k) = y⇤(k) y(k). B. Lopez (LIP6, UPMC) Soutenance de thèse 16 / 47 Analyse des filtres, premiers outils
  • 32. Analyse d’erreur Analyse d’erreur H⇤ u(k) "(k) y⇤(k) () H H" u(k) "(k) + y(k) y(k) y⇤(k) On veut déterminer y(k) = y⇤(k) y(k). on a besoin d’évaluer "(k) on a besoin de connaître le comportement de "(k) à travers H" B. Lopez (LIP6, UPMC) Soutenance de thèse 16 / 47 Analyse des filtres, premiers outils
  • 33. Analyse d’erreur Analyse d’erreur Évaluer l’erreur de calcul "(k), c’est déterminer les calculs qui produisent des erreurs d’arrondi. H 8 < : J · T(k + 1) M · X(k) + N · U(k) X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k) Y (k) L · T(k + 1) + R · X(k) + S · U(k) B. Lopez (LIP6, UPMC) Soutenance de thèse 17 / 47 Analyse des filtres, premiers outils
  • 34. Analyse d’erreur Analyse d’erreur Évaluer l’erreur de calcul "(k), c’est déterminer les calculs qui produisent des erreurs d’arrondi. H 8 < : J · T(k + 1) M · X(k) + N · U(k) X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k) Y (k) L · T(k + 1) + R · X(k) + S · U(k) On a besoin de connaître les positions des virgules des variables t, x et y. Connaître le comportement du signal u à travers H. B. Lopez (LIP6, UPMC) Soutenance de thèse 17 / 47 Analyse des filtres, premiers outils
  • 35. Analyse d’erreur Propriété des filtres linéaires Approche classique du comportement d’un signal d’entrée u à travers un filtre linéaire H. H u(k) µu, u y(k) µy , y 2 Traitement du signal µu : moyenne u : variance hhHiiDC : DC-Gain de H kHk2 : norme L2 de H Proposition µy = hhHiiDC · µu 2 y = kH · 'uk2 2 B. Lopez (LIP6, UPMC) Soutenance de thèse 18 / 47 Analyse des filtres, premiers outils
  • 36. Analyse d’erreur Propriété des filtres linéaires Nouvelle approche du comportement d’un signal d’entrée u à travers un filtre linéaire H. H u(k) hum, ur i y(k) hym, yr i Intervalle um : centre ur : rayon hhHiiDC : DC-Gain de H hhHiiWCPG : WCPG de H Théorème du WCPG ym = hhHiiDC · um yr = hhHiiWCPG · ur en régime permanent B. Lopez (LIP6, UPMC) Soutenance de thèse 19 / 47 Analyse des filtres, premiers outils
  • 37. Analyse d’erreur Analyse d’erreur H⇤ u(k) "(k) y⇤(k) () H H" u(k) "(k) + y(k) y(k) y⇤(k) Avec notre nouvelle approche, nous sommes donc capable de déterminer l’intervalle de l’erreur y(k). B. Lopez (LIP6, UPMC) Soutenance de thèse 20 / 47 Analyse des filtres, premiers outils
  • 38. Analyse d’erreur Plan Pré-requis sur les filtres Formalisme virgule fixe Analyse des filtres, premiers outils Implémentation logicielle Implémentation matérielle L’outil FiPoGen B. Lopez (LIP6, UPMC) Soutenance de thèse 21 / 47
  • 39. Analyse d’erreur Plan Pré-requis sur les filtres Formalisme virgule fixe Analyse des filtres, premiers outils Implémentation logicielle Implémentation matérielle L’outil FiPoGen B. Lopez (LIP6, UPMC) Soutenance de thèse 21 / 47
  • 40. Implémentation logicielle Implémentation logicielle Méthodologie pour l’implémentation logicielle Filtre (SIF) Filtre ! SoPs un SoP Conversion virgule fixe SoP virgule fixe oSoPs : Génération Propagation Évaluation le meilleur oSoP Génération de code Codes FxP SoP suivant Spécifications matérielles B. Lopez (LIP6, UPMC) Soutenance de thèse 22 / 47 Implémentation logicielle
  • 41. Implémentation logicielle Implémentation logicielle Méthodologie pour l’implémentation logicielle Filtre (SIF) Filtre ! SoPs un SoP Conversion virgule fixe SoP virgule fixe oSoPs : Génération Propagation Évaluation le meilleur oSoP Génération de code Codes FxP SoP suivant Spécifications matérielles B. Lopez (LIP6, UPMC) Soutenance de thèse 22 / 47 Implémentation logicielle
  • 42. Implémentation logicielle Implémentation logicielle Les seules opérations nécessaires sont des sommes-de-produits : S = nX i=1 ci · vi où les ci sont des constantes connues et les vi des variables (d’entrée, d’état, ou intermédiaires). B. Lopez (LIP6, UPMC) Soutenance de thèse 23 / 47 Implémentation logicielle
  • 43. Implémentation logicielle Implémentation logicielle Les seules opérations nécessaires sont des sommes-de-produits : S = nX i=1 ci · vi où les ci sont des constantes connues et les vi des variables (d’entrée, d’état, ou intermédiaires). L’addition en logiciel peut ne pas être associative à cause des décalages. On considère alors des sommes-de-produits ordonnées (oSoP). B. Lopez (LIP6, UPMC) Soutenance de thèse 23 / 47 Implémentation logicielle
  • 44. Implémentation logicielle Implémentation logicielle - oSoP S + + + ⇥ 20832 (-1,-16) v4 (5,-10) ⇥ -16450 (-1,-16) v5 (5,-10) ⇥ -19744 (0,-15) v0 (5,-10) + + + ⇥ 22782 ( 5, 20) v1 (5, 10) ⇥ 32159 ( 5, 20) v6 (5, 10) ⇥ 26997 ( 4, 19) v3 (5, 10) ⇥ 25313 ( 3, 18) v2 (5, 10) (5,-10) B. Lopez (LIP6, UPMC) Soutenance de thèse 24 / 47 Implémentation logicielle
  • 45. Implémentation logicielle Implémentation logicielle - oSoP S + + + ⇥ 20832 (-1,-16) v4 (5,-10) ⇥ -16450 (-1,-16) v5 (5,-10) + ⇥ -19744 (0,-15) v0 (5,-10) ⇥ 22782 ( 5, 20) v1 (5, 10) + + ⇥ 32159 ( 5, 20) v6 (5, 10) ⇥ 26997 ( 4, 19) v3 (5, 10) ⇥ 25313 ( 3, 18) v2 (5, 10) (5,-10) B. Lopez (LIP6, UPMC) Soutenance de thèse 24 / 47 Implémentation logicielle
  • 46. Implémentation logicielle Implémentation logicielle - oSoP S + + + ⇥ 20832 (-1,-16) v4 (5,-10) ⇥ -16450 (-1,-16) v5 (5,-10) + ⇥ -19744 (0,-15) v0 (5,-10) ⇥ 22782 ( 5, 20) v1 (5, 10) + + ⇥ 32159 ( 5, 20) v6 (5, 10) ⇥ 26997 ( 4, 19) v3 (5, 10) ⇥ 25313 ( 3, 18) v2 (5, 10) (5,-10) Il y a nQ i=1 (2i 1) oSoP à considérer. B. Lopez (LIP6, UPMC) Soutenance de thèse 24 / 47 Implémentation logicielle
  • 47. Implémentation logicielle Implémentation logicielle - Propagation Pour chaque oSoP, on propage les intervalles des variables vers la sortie en utilisant l’arithmétique d’intervalle et l’arithmétique virgule fixe. S + + + ⇥ 20832 (-1,-16) v4 (5,-10) ⇥ -16450 (-1,-16) v5 (5,-10) ⇥ -19744 (0,-15) v0 (5,-10) + + + ⇥ 22782 ( 5, 20) v1 (5, 10) ⇥ 32159 ( 5, 20) v6 (5, 10) ⇥ 26997 ( 4, 19) v3 (5, 10) ⇥ 25313 ( 3, 18) v2 (5, 10) (5,-10) B. Lopez (LIP6, UPMC) Soutenance de thèse 25 / 47 Implémentation logicielle
  • 48. Implémentation logicielle Implémentation logicielle - Propagation Pour chaque oSoP, on propage les intervalles des variables vers la sortie en utilisant l’arithmétique d’intervalle et l’arithmétique virgule fixe. S + + + ⇥ 20832 (-1,-16) y[k 1] (5,-10) (5,-10) ⇥ -16450 (-1,-16) y[k 2] (5,-10) (5,-10) (5,-10) ⌧ 0 ⇥ -19744 (0,-15) u[k] (5,-10) (6,-9) (5,-10) (5,-10) 2 + 1 + 1 + ⇥ 22782 (-5,-20) u[k 1] (5,-10) (1,-14) ⇥ -32159 (-5,-20) y[k 3] (5,-10) (1,-14) (1,-14) (2,-13) ⇥ -26997 (-4,-19) u[k 3] (5,-10) (2,-13) (2,-13) (3,-12) ⇥ -25313 (-3,-18) u[k 2] (5,-10) (3,-12) (3,-12) (5,-10) (5,-10) B. Lopez (LIP6, UPMC) Soutenance de thèse 25 / 47 Implémentation logicielle
  • 49. Implémentation logicielle Implémentation logicielle - Évaluation / Sélection Évaluation À chaque formatage correspond une erreur (un bruit ou un intervalle) que l’on sait évaluer. On en déduit l’erreur cumulée globale pour chaque schéma. B. Lopez (LIP6, UPMC) Soutenance de thèse 26 / 47 Implémentation logicielle
  • 50. Implémentation logicielle Implémentation logicielle - Évaluation / Sélection Évaluation À chaque formatage correspond une erreur (un bruit ou un intervalle) que l’on sait évaluer. On en déduit l’erreur cumulée globale pour chaque schéma. Sélection Plusieurs critères pour choisir le meilleur schéma : l’erreur globale le parallélisme B. Lopez (LIP6, UPMC) Soutenance de thèse 26 / 47 Implémentation logicielle
  • 51. Implémentation matérielle Plan Pré-requis sur les filtres Formalisme virgule fixe Analyse des filtres, premiers outils Implémentation logicielle Implémentation matérielle L’outil FiPoGen B. Lopez (LIP6, UPMC) Soutenance de thèse 27 / 47
  • 52. Implémentation matérielle Implémentation matérielle Méthodologie pour l’implémentation matérielle Filtre Filtre ! SoPs N SoPs Expression contraintes d’optimisation fichier description AMPL Résolution par Bonmin ensemble de largeurs Génération schéma virgule fixe Schéma virgule fixe Génération de l’architecture Architecture B. Lopez (LIP6, UPMC) Soutenance de thèse 28 / 47 Implémentation matérielle
  • 53. Implémentation matérielle Implémentation matérielle Méthodologie pour l’implémentation matérielle Filtre Filtre ! SoPs N SoPs Expression contraintes d’optimisation fichier description AMPL Résolution par Bonmin ensemble de largeurs Génération schéma virgule fixe Schéma virgule fixe Génération de l’architecture Architecture B. Lopez (LIP6, UPMC) Soutenance de thèse 28 / 47 Implémentation matérielle
  • 54. Implémentation matérielle Implémentation matérielle Choix sur les largeurs =) Problème d’optimisation combinatoire Notations v = Z · vin v , 0 @ t(k + 1) x(k + 1) y(k) 1 A , Z , 0 @ J0 M N K P Q L R S 1 A , et vin , 0 @ t(k) x(k) u(k) 1 A . B. Lopez (LIP6, UPMC) Soutenance de thèse 29 / 47 Implémentation matérielle
  • 55. Implémentation matérielle Implémentation matérielle Choix sur les largeurs =) Problème d’optimisation combinatoire Notations v = Z · vin v , 0 @ t(k + 1) x(k + 1) y(k) 1 A , Z , 0 @ J0 M N K P Q L R S 1 A , et vin , 0 @ t(k) x(k) u(k) 1 A . Problème d’optimisation min f (wZ , wv ) tel que gi (wZ , wv )  0 B. Lopez (LIP6, UPMC) Soutenance de thèse 29 / 47 Implémentation matérielle
  • 56. Implémentation matérielle Implémentation matérielle Choix sur les largeurs =) Problème d’optimisation combinatoire Notations v = Z · vin v , 0 @ t(k + 1) x(k + 1) y(k) 1 A , Z , 0 @ J0 M N K P Q L R S 1 A , et vin , 0 @ t(k) x(k) u(k) 1 A . Problème d’optimisation min f (wZ , wv ) = X i,j wZi,j + X i wvi tel que gi (wZ , wv )  0 B. Lopez (LIP6, UPMC) Soutenance de thèse 29 / 47 Implémentation matérielle
  • 57. Implémentation matérielle Contraintes - Formatage de bits s s s s s s s s s sf Contexte Une somme de N termes (pi )1iN avec différents formats, et le FPF de la somme finale connu, dont la largeur est plus petite que la largeur de la somme exacte. B. Lopez (LIP6, UPMC) Soutenance de thèse 30 / 47 Implémentation matérielle
  • 58. Implémentation matérielle Contraintes - Formatage de bits s s s s s s s s s s0 f Formatage On peut limiter le nombre de bits et obtenir un arrondi fidèle. B. Lopez (LIP6, UPMC) Soutenance de thèse 30 / 47 Implémentation matérielle
  • 59. Implémentation matérielle Contraintes - Formatage de bits s s s s s s s s s s0 f Calcul de Arrondi Troncature blog2(N 1)c + 1 Au plus proche blog2(N)c + 1 B. Lopez (LIP6, UPMC) Soutenance de thèse 30 / 47 Implémentation matérielle
  • 60. Implémentation matérielle Contraintes - Formatage de bits Produit constante / variable Les constantes ci sont des constantes réelles arrondies. L’erreur sur ci est plus petite que le bit en position `ci . s ci (mci , `ci ) s vi (mvi , `vi )⇥ B. Lopez (LIP6, UPMC) Soutenance de thèse 31 / 47 Implémentation matérielle
  • 61. Implémentation matérielle Contraintes - Formatage de bits Produit constante / variable Les constantes ci sont des constantes réelles arrondies. L’erreur sur ci est plus petite que le bit en position `ci . s ci (mci , `ci ) s vi (mvi , `vi ) wvi 1 s `ci + `vi ⇥ B. Lopez (LIP6, UPMC) Soutenance de thèse 31 / 47 Implémentation matérielle
  • 62. Implémentation matérielle Contraintes - Formatage de bits Produit constante / variable Les constantes ci sont des constantes réelles arrondies. L’erreur sur ci est plus petite que le bit en position `ci . s ci (mci , `ci ) s vi (mvi , `vi ) wvi 1 s `ci + `vi ⇥ L’erreur se propage sur les bits en position `ci + mvi et inférieures. B. Lopez (LIP6, UPMC) Soutenance de thèse 31 / 47 Implémentation matérielle
  • 63. Implémentation matérielle Contraintes - Formatage de bits On combine le formatage avec l’observation précédente pour obtenir la contrainte suivante : `s > `ci + mvi , 8i s s s s s s s s s s0 f B. Lopez (LIP6, UPMC) Soutenance de thèse 32 / 47 Implémentation matérielle
  • 64. Implémentation matérielle Contraintes - Formatage de bits On combine le formatage avec l’observation précédente pour obtenir la contrainte suivante : `s > `ci + mvi , 8i Contraintes de formatage de bits Avec les notations de la SIF wZi,j wvi Ci,j , 8i, j. B. Lopez (LIP6, UPMC) Soutenance de thèse 32 / 47 Implémentation matérielle
  • 65. Implémentation matérielle Contraintes - Erreur sur la sortie H H" u(k) "(k) + y(k) y(k) y⇤(k) On veut borner l’erreur sur la sortie y par ⇠ : [ y; y] ⇢ [ ⇠; ⇠] B. Lopez (LIP6, UPMC) Soutenance de thèse 33 / 47 Implémentation matérielle
  • 66. Implémentation matérielle Contraintes - Erreur sur la sortie H H" u(k) "(k) + y(k) y(k) y⇤(k) On veut borner l’erreur sur la sortie y par ⇠ : [ y; y] ⇢ [ ⇠; ⇠] y < ⇠ y < ⇠ B. Lopez (LIP6, UPMC) Soutenance de thèse 33 / 47 Implémentation matérielle
  • 67. Implémentation matérielle Contraintes - Erreur sur la sortie H H" u(k) "(k) + y(k) y(k) y⇤(k) On veut borner l’erreur sur la sortie y par ⇠ : [ y; y] ⇢ [ ⇠; ⇠] y < ⇠ ! X j aj 2wvj < 1 y < ⇠ ! X j dj 2wvj < 1 B. Lopez (LIP6, UPMC) Soutenance de thèse 33 / 47 Implémentation matérielle
  • 68. Implémentation matérielle Contraintes - Bilan Contraintes de formatage de bits Avec les notations de la SIF wZi,j wvi Ci,j , 8i, j. Contraintes sur l’erreur X j aj 2wvj < 1, X j dj 2wvj < 1. B. Lopez (LIP6, UPMC) Soutenance de thèse 34 / 47 Implémentation matérielle
  • 69. Implémentation matérielle Contraintes - Bilan Contraintes de formatage de bits Avec les notations de la SIF wZi,j wvi + Ci,j , 8i, j. Contraintes sur l’erreur X j aj 2wvj < 1, X j dj 2wvj < 1. B. Lopez (LIP6, UPMC) Soutenance de thèse 34 / 47 Implémentation matérielle
  • 70. Implémentation matérielle Problème d’optimisation Finalement, le problème se formalise ainsi : min f (wv ) = X i wvi tel que X j aj 2wvj < 1, X j dj 2wvj < 1. Problème Convexe Non-Linéaire en Nombres Entiers B. Lopez (LIP6, UPMC) Soutenance de thèse 35 / 47 Implémentation matérielle
  • 71. Implémentation matérielle Problème d’optimisation Finalement, le problème se formalise ainsi : min f (wv ) = X i wvi tel que X j aj 2wvj < 1, X j dj 2wvj < 1. Problème Convexe Non-Linéaire en Nombres Entiers Résolution par le solveur Bonmin. B. Lopez (LIP6, UPMC) Soutenance de thèse 35 / 47 Implémentation matérielle
  • 72. FiPoGen Plan Pré-requis sur les filtres Formalisme virgule fixe Analyse des filtres, premiers outils Implémentation logicielle Implémentation matérielle L’outil FiPoGen B. Lopez (LIP6, UPMC) Soutenance de thèse 36 / 47
  • 73. FiPoGen FiPoGen (Fixed-Point code Generator) Cet outil réalise la méthodologie proposée pour l’implémentation d’un filtre linéaire en virgule fixe. Développé en Python Actuellement spécialisé dans les algorithmes de filtres linéaires Met en œuvre aussi bien la méthodologie logicielle que matérielle B. Lopez (LIP6, UPMC) Soutenance de thèse 37 / 47 L’outil FiPoGen
  • 74. Exemple Exemple Soit H un filtre aléatoire stable généré avec Matlab d’ordre 8 et H sa fonction de transfert : H(z) = 8P i=0 bi z i 1 + 8P i=0 ai z i , 8z 2 C, b0 = 0.940140, b1 = 1.04326, a1 = 2.06925, b2 = 0.292108, a2 = 1.95404, b3 = 0.693159, a3 = 1.04616, b4 = 0.183105, a4 = 0.0898125, b5 = 0.270429, a5 = 0.172354, b6 = 0.296554, a6 = 0.0730519, b7 = 0.0311837, a7 = 0.00696194, b8 = 0.0363021, a8 = 0.00556424. B. Lopez (LIP6, UPMC) Soutenance de thèse 38 / 47 L’outil FiPoGen
  • 75. Exemple Exemple Soit H un filtre aléatoire stable généré avec Matlab d’ordre 8 −15 −10 −5 0 5 10 15 Magnitude(dB) 10 −3 10 −2 10 −1 10 0 10 1 90 135 180 225 Phase(deg) Bode Diagram Frequency (rad/s) −15 −10 −5 0 5 10 15 Magnitude(dB) 10 −3 10 −2 10 −1 10 0 10 1 90 135 180 225 Phase(deg) Frequency (rad/s) B. Lopez (LIP6, UPMC) Soutenance de thèse 38 / 47 L’outil FiPoGen
  • 76. Exemple Exemple Soit H un filtre aléatoire stable généré avec Matlab d’ordre 8 −15 −10 −5 0 5 10 15 Magnitude(dB) 10 −3 10 −2 10 −1 10 0 10 1 90 135 180 225 Phase(deg) Bode Diagram Frequency (rad/s) −15 −10 −5 0 5 10 15 Magnitude(dB) 10 −3 10 −2 10 −1 10 0 10 1 90 135 180 225 Phase(deg) Frequency (rad/s) Intervalle de sortie On considère une entrée aléatoire u(k) 2 [ 237; 162] ⇢ [ 256; 255]. On obtient la sortie y(k) 2 [ 1235.97; 1622.63] ⇢ [ 2048; 2047]. B. Lopez (LIP6, UPMC) Soutenance de thèse 38 / 47 L’outil FiPoGen
  • 77. Exemple Exemple - Plusieurs réalisations Plusieurs réalisations sont considérées : Forme Directe I une seule somme-de-produits de 17 produits Forme Directe II transposée avec opérateur ⇢ une matrice de taille 17 ⇥ 17 creuse 40 coefficients non triviaux Structure LGS une matrice de taille 185 ⇥ 185 creuse 73 coefficients non triviaux State-space minimisant la sensibilité L2 une matrice de taille 9 ⇥ 9 dense B. Lopez (LIP6, UPMC) Soutenance de thèse 39 / 47 L’outil FiPoGen
  • 78. Exemple Cas logiciel On considère les largeurs fixées suivantes Largeurs des constantes et des différents types de variables : 16 bits Largeurs additionneurs et multiplieurs : 32 bits B. Lopez (LIP6, UPMC) Soutenance de thèse 40 / 47 L’outil FiPoGen
  • 79. Exemple Cas logiciel On considère les largeurs fixées suivantes Largeurs des constantes et des différents types de variables : 16 bits Largeurs additionneurs et multiplieurs : 32 bits Réalisations Temps Nombre Intervalles de génération d’opérations d’erreurs DFI 17 ⇥ et 16 + [ 2.37205; 4.21885e-15] SIF⇢ 000 0000 03 40 ⇥ et 24 + [ 1.62242; 0.176747] SIFLGS 020 2700 61 73 ⇥ et 34 + [ 0.608507; 5.66752] SSL2 050 4800 87 81 ⇥ et 72 + [ 1.31393; 0.311331] B. Lopez (LIP6, UPMC) Soutenance de thèse 40 / 47 L’outil FiPoGen
  • 80. Exemple B. Lopez (LIP6, UPMC) Soutenance de thèse 41 / 47 L’outil FiPoGen
  • 81. Exemple Cas matériel Dans cet exemple, on souhaite borner l’erreur par l’intervalle [ 2; 2]. Réalisations Temps de Optimalité Nombre de bits Nombre de résolution (sec) des variables bits total DFI – – – 670 SIF⇢ 836.15 Oui 293 1025 SIFLGS 600 ? 749 1702 SSL2 0.28 Oui 142 1642 B. Lopez (LIP6, UPMC) Soutenance de thèse 42 / 47 L’outil FiPoGen
  • 82. Exemple B. Lopez (LIP6, UPMC) Soutenance de thèse 43 / 47 L’outil FiPoGen
  • 83. Exemple Conclusion Conclusion Durant cette thèse, j’ai répondu à la question suivante : Pour un filtre linéaire donné, comment produire l’implémentation virgule fixe optimale ? Plusieurs résultats ont pu être obtenus : Formalisation détaillée de l’arithmétique virgule fixe Analyse du comportement d’un intervalle à travers un filtre linéaire B. Lopez (LIP6, UPMC) Soutenance de thèse 44 / 47
  • 84. Exemple Conclusion Conclusion Durant cette thèse, j’ai répondu à la question suivante : Pour un filtre linéaire donné, comment produire l’implémentation virgule fixe optimale ? Plusieurs résultats ont pu être obtenus : Formalisation détaillée de l’arithmétique virgule fixe Analyse du comportement d’un intervalle à travers un filtre linéaire Méthodologie pour les implémentations matérielle et logicielle FiPoGen, un outil pour générer du code virgule fixe en suivant ces méthodologies B. Lopez (LIP6, UPMC) Soutenance de thèse 44 / 47
  • 85. Exemple Perspectives Dans un futur proche : Rendre FiPoGen totalement autonome du filtre au code Fonction de coût plus réaliste : coût d’implémentation, surface, etc. Génération des oSoPs plus performante selon les critères de sélection Connecter FiPoGen à des outils tels que FloPoCo ou Stratus B. Lopez (LIP6, UPMC) Soutenance de thèse 45 / 47
  • 86. Exemple Perspectives Dans un futur proche : Rendre FiPoGen totalement autonome du filtre au code Fonction de coût plus réaliste : coût d’implémentation, surface, etc. Génération des oSoPs plus performante selon les critères de sélection Connecter FiPoGen à des outils tels que FloPoCo ou Stratus Dans un second temps : Chercher de nouvelles réalisations pour les filtres LTI Considérer d’autres filtres linéaires (paramétrés, etc.) S’intéresser à d’autres classes d’algorithmes B. Lopez (LIP6, UPMC) Soutenance de thèse 45 / 47
  • 87. Exemple Perspectives Dans un futur proche : Rendre FiPoGen totalement autonome du filtre au code Fonction de coût plus réaliste : coût d’implémentation, surface, etc. Génération des oSoPs plus performante selon les critères de sélection Connecter FiPoGen à des outils tels que FloPoCo ou Stratus Dans un second temps : Chercher de nouvelles réalisations pour les filtres LTI Considérer d’autres filtres linéaires (paramétrés, etc.) S’intéresser à d’autres classes d’algorithmes Faire de FiPoGen un outil générique pour la génération de code virgule fixe, et non uniquement pour les filtres. B. Lopez (LIP6, UPMC) Soutenance de thèse 45 / 47
  • 88. Exemple Publications Trois publications dans des conférences avec comité de lecture B. Lopez, T. Hilaire, L.-S. Didier. “Sum-of-products evaluation schemes with fixed-point arithmetic, and their application to IIR filter implementation”, DASIP 2012. T. Hilaire, B. Lopez. “Reliable Implementation of Linear Filters with Fixed-Point Arithmetic”, SiPS 2013. B. Lopez, T. Hilaire, L.-S. Didier. “Formatting Bits to Better Implement Signal Processing Algorithms”. PECCS 2014. Une Demo Night D. Menard et al. “Design of fixed-point embedded systems (DEFIS) French ANR project”, DASIP 2012. En cours Une soumission à IEEE Circuits & Systems I est prévue avant la fin de l’année 2014. B. Lopez (LIP6, UPMC) Soutenance de thèse 46 / 47
  • 89. Exemple Merci B. Lopez (LIP6, UPMC) Soutenance de thèse 47 / 47
  • 90. Exemple Annexe B. Lopez (LIP6, UPMC) Soutenance de thèse 48 / 47
  • 91. Exemple Propriété des filtres linéaires Nouvelle approche du comportement d’un signal d’entrée u à travers un filtre linéaire H. H u(k) hum, ur i y(k) hym, yr i Intervalle um : centre ur : rayon hhHiiDC : DC-Gain de H hhHiiWCPG : WCPG de H Théorème du WCPG ym = hhHiiDC · um yr = hhHiiWCPG · ur en régime permanent B. Lopez (LIP6, UPMC) Soutenance de thèse 49 / 47 Analyse des filtres, premiers outils
  • 92. Exemple Propriété des filtres linéaires Nouvelle approche du comportement d’un signal d’entrée u à travers un filtre linéaire H. H u(k) hum, ur i y(k) hym, yr i Intervalle um : centre ur : rayon hhHiiDC : DC-Gain de H hhHiiWCPG : WCPG de H Théorème du WCPG ym = hhHiiDC · um yr = hhHiiWCPG · ur + " · um 9K tel que 8k > K, y(k) 2 hym, yr i B. Lopez (LIP6, UPMC) Soutenance de thèse 49 / 47 Analyse des filtres, premiers outils