Académique Documents
Professionnel Documents
Culture Documents
Traitement Num
erique du Signal
Polycopi
e de cours
Olivier Sentieys
ENSSAT - Universit
e de Rennes 1
olivier.sentieys@enssat.fr
http://www.irisa.fr/cairn
6 Rue de Kerampont - CS 80518
22305 LANNION - France
IRISA ENSSAT
Institut de Recherche en Informatique et Syst`
emes Al
eatoires
Ecole
Nationale Sup
erieure de Sciences Appliqu
ees et de Technologie
Technop
ole Anticipa Lannion
ii
.
.
.
.
.
.
3 Synth`
ese des filtres RIF
3.1 Introduction . . . . . . . . . . . . . . . . . . .
3.2 Filtres `a phase lineaire . . . . . . . . . . . . . .
3.2.1 Filtre RIF `a phase lineaire de type I . .
3.2.2 Filtre RIF `a phase lineaire de type II . .
3.2.3 Filtre RIF `a phase lineaire de type III . .
3.2.4 Filtre RIF `a phase lineaire de type IV . .
3.3 Methode de synth`ese par fenetrage . . . . . . .
3.3.1 Caracteristiques des principales fenetres
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
4
4
4
.
.
.
.
.
.
.
.
.
.
.
.
5
5
6
8
9
9
10
10
11
12
12
12
14
.
.
.
.
.
.
17
17
17
17
21
22
24
.
.
.
.
.
.
.
.
29
29
29
31
31
32
32
34
36
3.4
4 Transform
ee de Fourier Rapide
4.1 Naissance de la TFR . . . . . . . . . . . . . . . . . . . . . . .
4.2 TFR partagee dans le temps (DIT) . . . . . . . . . . . . . . . .
4.3 TFR partagee dans les frequences (DIF) . . . . . . . . . . . . .
4.4 Autres graphes de la TFR . . . . . . . . . . . . . . . . . . . . .
4.5 Annexes au chapitre sur la TFR . . . . . . . . . . . . . . . . . .
4.5.1 Graphe dune TFR DIT radix 2 sur 16 points . . . . . .
4.5.2 Graphe dune TFR DIF radix 2 sur 16 points . . . . . .
4.5.3 Graphe dune TFR `a geometrie constante sur 16 points .
4.5.4 Graphe dune TFR DIF radix 4 sur 16 points . . . . . .
4.5.5 Algorithme DIF de la TFR radix 2 sur I points complexes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
41
42
45
46
48
48
49
50
51
52
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
55
55
55
55
56
56
58
59
62
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 Syst`
emes multi-cadences
6.1 Reduction de la frequence dechantillonnage . . . . . .
6.2 Augmentation de la frequence dechantillonnage . . . .
evateur de frequence dechantillonnage . . . .
6.2.1 El
6.2.2 Interpolation . . . . . . . . . . . . . . . . . . .
6.2.3 Multiplication de la frequence dechantillonnage
.
.
.
.
.
.
.
.
. .
. .
. .
. .
par
7 Arithm
etique virgule fixe
7.1 Presentation de larithmetique virgule fixe . . . . . . . .
7.1.1 Les differents types de codage . . . . . . . . . .
7.1.2 Definition des r`egles de larithmetique virgule fixe
7.1.3 Multiplication en binaire `a base de decalage . . .
7.2 Codage en virgule fixe . . . . . . . . . . . . . . . . . . .
7.2.1 Determination de la dynamique des donnees . . .
7.2.2 Determination de la position de la virgule . . . .
7.2.3 Determination de la largeur des donnees . . . . .
7.3 Evaluation de la precision . . . . . . . . . . . . . . . . .
7.3.1 Processus de quantification et de depassement .
7.3.2 Modelisation du bruit . . . . . . . . . . . . . . .
7.3.3 Filtrage du bruit . . . . . . . . . . . . . . . . .
7.4 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.1 Description de lapplication . . . . . . . . . . . .
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . .
. . . . . .
. . . . . .
. . . . . .
un facteur
. . . . .
. . . . .
. . . . .
. . . . .
rationnel
.
.
.
.
.
.
.
.
.
.
65
65
66
68
69
69
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
71
71
71
78
80
83
85
92
99
103
103
105
111
116
117
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
7.4.2
7.4.3
7.4.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
123
123
123
126
127
127
129
134
136
136
138
138
141
141
142
144
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
151
151
151
154
155
Introduction
Le traitement numerique du signal est une notion quil nest pas facile de definir simplement
etant donne le nombre important dapplications relevant de cette discipline. En premi`ere
approximation, on peut tout dabord tenter dexpliciter chacun des mots de cette expression.
Traitement signifie que lon est en presence dun processus de sequencement doperations
programmees. Une sequence doperations sapplique ici `a une suite de donnees Numeriques
qui vont representer sous une forme discr`ete un param`etre variable, ou Signal, qui le plus
souvent est exterieur au processus de traitement.
Il sagit donc dappliquer un traitement ou une analyse de linformation `a une sequence de
nombres discrets qui represente un signal provenant pour la majorite des applications du
monde physique qui nous entoure.
Le traitement numerique dun signal necessite un support materiel permettant deffectuer
le traitement de linformation, ce peut-etre du materiel electronique specifique `a une tache
particuli`ere ou du materiel moins specialise comme peut-letre un ordinateur.
Il faut pouvoir communiquer entre le monde physique exterieur et le processus par lequel
seffectue le traitement ; le signal exterieur, sil est defini sur un support continu, doit etre
represente sous une forme discr`ete. Cela veut dire que lon accepte de perdre de linformation :
entre deux valeurs consecutives et discr`etes du signal nous faisons lhypoth`ese de ne disposer
daucune autre information. Nous verrons quune analyse du probl`eme `a traiter permet de
definir correctement ce qui est conserve ou non dans la forme numerique dun signal.
Il faut bien s
ur definir la sequence des operations qui transforme le signal numerique. Cette
operation correspond `
a un objectif de traitement bien precis, par exemple supprimer lecho
des lignes telephoniques, reconnatre une signature radar, etc...
Le developpement de lelectronique permit le traitement du signal analogique ; un signal electronique analogique suit continument le signal physique qui lui est relie via un capteur. Cest
le developpement des calculateurs numeriques qui a conduit `a lessor du traitement numerique
du signal. Cest en effet une approche souple - les traitements correspondent `a des logiciels, les
supports materiels sont polyvalents -, les etats discrets dun calculateur sont stables - ce nest
en effet pas le cas des syst`emes analogiques fortement sensibles aux derives dues par exemple
aux conditions de temperature ou aux probl`emes de vieillissement -. Cependant, lapproche
numerique peut se reveler parfois complexe pour des applications tr`es simples. La quantite
dinformation pouvant etre traitee est correlee `a la vitesse de calcul ; la realisation dun traitement sous forme analogique ira toujours plus vite que par une forme numerique avec un
calculateur et du logiciel.
Introduction
Chapitre 1
Filtrage num
erique
1.1
Il est difficile de donner une definition formelle de la notion de filtrage. Lingenieur electronicien pense souvent `
a une modification des caracteristiques frequentielles dun signal donne
dentree. Dun point de vue theorique, le domaine frequentiel est couple au domaine temporel,
le filtrage modifie donc egalement la reponse dans ce dernier.
A une sequence dechantillons dun signal dentree `a temps discret x(n), un filtre numerique,
defini par sa reponse impulsionnelle h(n) ou par sa fonction de transfert en z H(z), repond
par une sequence dechantillons dun signal de sortie y(n) (figure 1.1).
Filtre numrique
x(n) <=> X(z)
7z
h(n) <=> H(z)
Filtrage numerique
697 Hz
770 Hz
1
4
2
5
3
6
852 Hz
941 Hz
BP Filter
Detector
697 Hz
BP Filter
Detector
770 Hz
BP Filter
Detector
852 Hz
LP Filter
Limiter
BP Filter
Detector
941 Hz
HP Filter
Limiter
BP Filter
Detector
1209 Hz
BP Filter
Detector
1336 Hz
BP Filter
Detector
1477 Hz
1.2
Repr
esentation dun filtre num
erique
o`
u N (z) est le polynome du numerateur de la fonction de transfert, tandis que D(z)
est son denominateur. N est ici lordre du filtre. Dans le cas o`
u H(z) poss`ede des p
oles,
on parlera de filtres RII (pour Reponse Impulsionnelle Infinie). Si N (z) = 1, on parlera
de filtre tous-poles. Dans le cas o`
u D(z) = 1, le filtre ne poss`ede que des zeros. Cette
famille de filtre correspond au cas des filtres RIF (pour Reponse Impulsionnelle Finie).
Celle ci na pas dequivalent en filtrage analogique, et nous verrons que ses proprietes
en font une fonction tr`es utilisee en traitement numerique du signal.
Lequation 1.1 peut egalement etre representee en mettant en avant les p
oles et les
zeros.
QN
i=1
H(z) = b0 QN
(z zi )
i=1 (z
pi )
(1.2)
o`
u pi sont les p
oles et zi sont les zeros de H(z). On rappelle ici que la stabilite du filtre
sera determine par lappartenance des p
oles au cercle unite (i.e. |pi | < 1), et que des
zeros appartenant au cercle unite caracteriseront un filtre `a minimum de phase.
La figure 1.3 montre plusieurs versions de representations de H(z). La forme directe
(figure1.3.a) peut etre decomposee en produit ou en somme de fonctions de transfert
dordre inferieur, generalement dordre 2. Lequation 1.3 et la figure 1.3.b representent
la forme parall`ele, tandis que lequation 1.4 et la figure 1.3.c representent la forme
cascade.
M
M
X
X
b0 + b1 .z 1 + b2 .z 2
(1.3)
Hi (z) =
H(z) =
1 + a1 .z 1 + a2 .z 2
i=1
i=1
H(z) =
M
Y
Hi (z) =
M
Y
b0 + b1 .z 1 + b2 .z 2
i=1
i=1
(1.4)
1 + a1 .z 1 + a2 .z 2
2. R
eponse impulsionnelle. La reponse impulsionnelle est la fonction en z inverse de
H(z).
X
h(n).z n
(1.5)
H(z) =
n=0
Comme en filtrage analogique, la sortie dun filtre y(nT ) est le resultat de la convolution
du signal dentree represente de mani`ere temporelle x(nT ) avec la reponse impulsionnelle du filtre h(nT ). On a alors y(nT ) = x(nT ) h(nT ), ou, si on fait abstraction de
la periode dechantillonnage T :
y(n) = x(n) h(n) =
X
k=0
x(k).h(n k) =
X
k=0
x(n k).h(k)
(1.6)
Dans le cas o`
u x(n) est une impulsion (n), on retrouve bien y(n) = h(n).
Selon les cas o`
u h(n) est `
a support infini ou fini, on retrouvera respectivement les deux
types de filtres RII et RIF.
3. Equation
aux diff
erences. Une transformation en z inverse de lequation 1.1 permet
daboutir `
a la forme suivante :
y(n) =
N
X
i=0
bi .x(n i)
N
X
i=0
ai .y(n i)
(1.7)
On identifie ici deux parties distinctes : une partie fonction de la valeur courante et des
valeurs precedentes de lentree x(n), et une partie fonction des valeurs precedentes de
la sortie y(n). Selon si les ai sont non nuls ou nuls, on parlera donc de filtres recursifs
ou de filtres non recursifs.
H1(z)
X(z)
H(z)
Y(z)
X(z)
H2(z)
Y(z)
...
a) Forme directe
HM(z)
b) Forme parallle
X(z)
H1(z)
H2(z)
...
HM(z)
Y(z)
c) Forme cascade
Filtrage numerique
1.3
Sp
ecification dun filtre num
erique
Avant quun filtre numerique soit concu et implante, nous avons besoin de definir ses specifications. Un filtre doit laisser passer certaines frequences, alors quil doit en attenuer (voire
eliminer) dautres. Nous devons donc pouvoir representer ces contraintes. Il y a quatre filtres
de bases :
1. les filtres passe-bas laissent passer les frequences inferieures `a une frequence de coupure
fc et bloquent celles qui lui sont superieures (figure 1.4.a),
2. les filtres passe-haut bloquent les frequences inferieures `a une frequence de coupure fc
et laissent passer celles qui lui sont superieures (figure 1.4.b),
3. les filtres passe-bande laissent passer les frequences autour dune frequence centrale f0
(ou comprises entre f1 et f2 ) et bloquent les autres (figure 1.4.c),
4. les filtres rejecteur-de-bande bloquent les frequences autour dune frequence centrale
f0 (ou comprises entre f1 et f2 ) et laissent passer les autres (figure 1.4.d).
H(ej)
H(ej)
1
a) Filtre passe-bas
b) Filtre passe-haut
H(ej)
H(ej)
1 0 2
c) Filtre passe-bande
1 0 2
d) Filtre rjecteur-de-bande
Les filtres representes en figure 1.4 sont ideaux. Dans un cas reel il ne peut y avoir de discontinuites. Le passage entre zones passantes et zones attenuees se fait par des zones dites
de transition dont la largeur va exprimer la selectivite du filtre. Les bandes passantes et
attenuees ne sont egalement pas ideales, elles contiennent des ondulations dont lamplitude
est exprimee par les param`etres dondulation en bande passante et dattenuation.
Pour toutes ces raisons, la specification dun filtre est habituellement realisee `a partir dun
gabarit frequentiel, defini entre 0 et .
1.3.1
Sp
ecifications des filtres passe-bas et passe-haut
|H(ej)| (dB)
p
1+1
1
1-1
20log(1+1)
0 dB
20log(1-1)
20log2
b) Gabarit frquentiel en dB
1.3.2
Sp
ecifications des filtres passe-bande et r
ejecteur-de-bande
Selectivite s
Ondulation
Attenuation
Frequence centrale 0
Largeur de bande B
Passe-bas
Passe-haut
Passe-bande
Rejecteur-de-bande
p
a
a
p
1
2
-
1
2
-
p+ p
a+ a
a+ a
p+ p
1
p 2
p+ .p
p+ p
0
1
p 2
p+ .p
p+ p
0
10
Filtrage numerique
|H(ej)|
1+1
1
1-1
2
a- p-
p+ a+
1.4
1.4.1
Filtres r
ecursifs RII
Les filtres analogiques ont necessairement une reponse impulsionnelle infinie. Les filtres numeriques RII se comportent de mani`ere similaire, mis `a part les effets dus `a la discretisation.
Cette categorie de filtre est egalement caracterisee par une fonction de transfert en z contenant des p
oles, et une equation aux differences recursives, cest `a dire lorsque la sortie y(n)
depend `a la fois des entrees et des sorties precedentes.
Les equations 1.8 et 1.9 montrent la fonction de transfert en z et lequation aux differences
correspondante de la forme generale dun filtre RII. N est appele ici lordre du filtre.
PN
i
N (z)
i=0 bi .z
=
H(z) =
P
i
D(z)
1+ N
i=1 ai .z
y(n) =
N
X
i=0
bi .x(n i)
N
X
i=0
ai .y(n i)
(1.8)
(1.9)
11
N
X
cn .z n
n=0
h(n) = cn pour n = 0 . . .
H(z) est un filtre RII,
2. si N (z) est divisible par D(z), on a un nombre fini de termes dans la division polynomiale de N (z) par D(z) :
H(z) =
N
1
X
cn .z n
n=0
h(n) = cn pour n = 0 . . . N 1
H(z) est un filtre RIF.
Exemple 1.4.1 : Demontrer que le filtre moyenneur
1 PM 1 i
1 1z M
=M
H(z) = M
i=0 z
1z 1
peut etre exprime de mani`ere recursive : y(n) = s(n 1) +
1 PM 1
ou de mani`ere non recursive : y(n) = M
i=0 e(n i)
1
M [e(n)
e(n M )]
1.4.2
Filtres non r
ecursifs RIF
Les filtres RIF ne peuvent pas etre derives des filtres analogiques. Il sont cependant tr`es
largement utilises car ils poss`edent des proprietes uniques (phase lineaire, stabilite, flexibilite).
Les equations 1.10 et 1.11 montrent la fonction de transfert en z et lequation aux differences
correspondante de la forme generale dun filtre RII. N est appele ici la longueur de la reponse
impulsionnelle du filtre.
N
1
X
bi .z i
(1.10)
H(z) =
i=0
y(n) =
N
1
X
i=0
bi .x(n i) =
N
1
X
i=0
h(i).x(n i)
(1.11)
12
Filtrage numerique
On remarque en exploitant lequation 1.11 que les coefficients bi du filtre sont egalement les
valeurs de la reponse impulsionnelle h(n), qui se trouve donc etre limitee dans le temps.
H(z) =
N
1
X
i=0
h(n) =
bi .z i h(n) =
bn
0
N
1
X
i=0
bi .(n i)
pour 0 n N 1
ailleurs
(1.12)
(1.13)
5. une phase qui peut etre exactement lineaire, par consequent un temps de propagation
de groupe constant et une absence de distorsion harmonique dans le signal ;
6. une plus grande facilite dimplantation dans un syst`eme numerique de traitement.
1.5
Analyse fr
equentielle des filtres num
eriques
h(n).ejn = H(z)/z=ej
(1.14)
n=0
1.6
1.6.1
(1.15)
La structure dun filtre est un graphe flots de donnees (GFD) dans lequel les nuds sont
des operations (les additions sont habituellement representees par des cercles contenant un
+ et les multiplications par des triangles associes aux coefficients multiplicande) et les arcs
les dependances, cest `
a dire le flot des donnees issues du signal. Certains arcs sont values
13
|H(ej)|
N
X
i=0
x(n)
Z-1
x(n-1)
b1
b1
x(n-N)
y(n)
Z-1
y(n)
+
Z-1
bN-1
+
Z-1
b0
bN-1
+
bN
bN
Z-1
+
a) Structure directe
b) Structure transpose
1.6.1.1
Complexit
e dimplantation dun filtre RIF
14
Filtrage numerique
1.6.2
(1.16)
Lequation suivante (1.17) montre que lon peut representer un filtre RII H(z) sous la forme
du produit de 2 structures, dont une est une filtre RIF N (z), et lautre un filtre RII tout-p
ole
1/D(z).
#
# "
"X
N
1
1
N (z)
i
= [N (z)]
bi .z
(1.17)
=
H(z) =
P
i
D(z)
D(z)
1+ N
i=1 ai .z
i=0
La structure directe dun filtre RII est donc obtenue en mettant en cascade un filtre RIF sous
forme directe, et la representation immediate du filtre tout-p
ole 1/D(z). Celle ci est donnee `
a
la figure 1.9.a. En reunissant les additions du centre de la figure, on obtient la forme directe
classique utilisee dans la litterature representee `a la figure 1.9.b.
b0
x(n)
Z-1
Z-1
b1
bN-1
+
y(n)
-a1
Z-1
x(n-1)
-aN-1
bN
-aN
RIF
RII
a) Cascade
Z-1
b0
x(n)
Z-1
Z-1
x(n-N)
b1
+
+
y(n)
-a1
Z-1
y(n-1)
bN-1
+
-aN-1
bN
-aN
Z-1
y(n-N)
b) Structure directe
[N (z)] =
H(z) =
P
i
D(z)
1+ N
a
.z
i=1 i
i=0
15
On peut donc echanger sur la figure 1.9.a les 2 blocs RIF et RII. Les deux lignes `a retard
permettant de memoriser les signaux x(n) se retrouvant communes, il est possible de les reunir
en obtenant un vecteur unique de registres w(n), comme represente `a la figure 1.10.a.
x(n)
b0
w(n)
y(n)
x(n)
b0
Z-1
+
b1
w(n-1)
Z-1
+
-aN-1
y(n)
Z-1
b1
-a1
-a1
Z-1
bN-1
bN-1
+
Z-1
bN
bN
-aN
w(n-N)
a) Structure canonique directe
-aN-1
Z-1
+
-aN
1.6.2.1
Complexit
e dimplantation dun filtre RII
(1.20)
16
Filtrage numerique
2. Etudier
lanalogie avec le syst`eme continu de constante de temps t, echantillonne avec
la periode T .
3. Etudier
la reponse frequentielle du filtre.
4. Donner la structure de realisation du filtre.
Exemple 1.6.2 : Cellule du second ordre purement recursive
Soit le syst`eme qui, `
a la suite de donnees x(n), fait correspondre la suite y(n) telle que :
y(n) = x(n) b1 .y(n 1) b2 .y(n 2)
1. Donner la fonction de transfert en Z du syst`eme.
2. En deduire la reponse impulsionnelle du filtre numerique.
3. Etudier
la reponse frequentielle du filtre. On regardera plus particuli`erement linfluence
des coefficients b1 et b2 sur les p
oles de la fonction de transfert H(z).
4. Tracer le diagramme des p
oles et zeros.
5. Donner les structures de realisation.
Chapitre 2
Synth`
ese des filtres RII
2.1
2.1.1
La synth`ese dun filtre numerique est la recherche dune fonction H(z) (ou h(n)) correspondant
`a la specification sous forme de gabarit. La recherche de cette fonction peut etre realisee selon
diverses methodes.
La methode la plus courante est lutilisation des methodes de synth`ese des filtres
analogiques aboutissant `
a une fonction H(p) correspondant aux specifications. Une
fonction permettant le passage du plan p dans le plan z (i.e. p = f (z)) est ensuite
utilisee pour obtenir H(z).
Cette fonction doit maintenir la stabilite du filtre analogique et maintenir, au mieux, les
caracteristiques de la reponse frequentielle H(ej ) du filtre numerique. Nous etudions
dans la suite du chapitre trois types de transformation f .
Une synth`ese directe en z est egalement possible selon les memes principes que la
synth`ese analogique, mais elle ne sera pas presentee ici vu le nombre important doutils
developpes dans le contexte analogique.
Enfin, des methodes doptimisation issues de lanalyse numerique peuvent etre utilisees afin de rechercher une fonction H(z) sapprochant le plus possible dune fonction
prototype. La minimisation dun crit`ere derreur entre la courbe ideale et la courbe
reelle est alors appliquee.
La figure 2.1 resume la methodologie de synth`ese de filtres analogiques et numeriques RII. Les
premi`eres phases de synth`ese analogique (normalisation, approximation et denormalisation)
sont explicites dans la section suivante, tandis que les differentes transformations p z sont
presentees aux sections 2.2 `
a 2.4.
2.1.2
Les filtres analogiques sont specifies de mani`ere equivalente aux filtres numeriques (voir section
1.3). Les frequences sont exprimees en fonction de f (en Hz) ou de , la pulsation (en rad/s).
La fonction de transfert H(p) est exprimee en p = j. La synth`ese de cette fonction H(p) est
composee de trois etapes principales :
17
18
Ordre du filtre
Approximation de H(p)
Types de filtre
(Butterworth, Chebyshev,...)
HNorm(p)
Dnormalisation
H(p)
Filtrage numrique
Filtrage analogique
Transformation
p=f(z)
invariance impulsionnelle,
bilinaire
Rauch, Sallien-Key,
Biquadratique
1. normalisation du gabarit,
2. approximation de la fonction de transfert normalisee HN orm (p),
3. denormalisation de HN orm (p) aboutissant `a la fonction de transfert H(p).
2.1.2.1
Normalisation
Cette premi`ere phase permet daboutir au gabarit passe-bas prototype (ou gabarit normalise)
`a partir de nimporte quel des 4 types principaux de filtres (passe-bas, passe-haut, passe-bande,
rejecteur-de-bande). Celui-ci (voir figure 2.2) est un gabarit passe-bas possedant une pulsation
de coupure normalisee `
a 1 et une pulsation de bande attenuee valant 1s , s etant la selectivite
definie au paragraphe 1.3 (voir tableau 1.1). Les valeurs dondulation et dattenuation sont
inchangees.
2.1.2.2
La phase suivante consiste en la recherche dune fonction HN orm (p) entrant dans le gabarit
prototype passe-bas defini avant. Il existe plusieurs fonctions dapproximation, nous exposons
ci-apr`es les 4 fonctions les plus utilisees.
Pour la determination de lordre du filtre et des coefficients de la fonction de transfert H(p), on
pourra soit utiliser les formules et tableaux donnees ci-apr`es, soit utiliser les abaques fournies
en annexe B.
1. Filtres de Butterworth
Un filtre passe-bas de Butterworth dordre N et de pulsation de coupure c est defini
19
|HNorm(p)| (dB)
|HNorm(p)|
1/s
1+1
1
1-1
0
1
1/s
b) Gabarit prototype en dB
1+
1
2N
(2.1)
3
4
5
6
a1
1.4142
2
2.6131
3.2361
3.8637
a2
a3
a4
a5
2
3.4142
5.2361
7.4641
2.6131
5.2361
9.1416
3.2361
7.4641
3.8637
20
1 + 2
pour un filtre de type II, ces ondulations sont situees dans la bande attenuee (
c ),
1/(1 + 2 ), N impair
C
|H (0)| =
1,
N pair
lattenuation asymptotique dans les hautes frequences vaut 20.N dB/decade, mais
lordre du filtre sera plus faible quun Butterworth `a specifications equivalentes.
3. Filtres elliptiques
Les filtres elliptiques poss`edent des ondulations `a la fois en bande passante et en bande
attenuee. Ils sont optimaux en terme de selectivite, cest `a dire quils donnent lordre
minimal `
a specification donnee. Un filtre passe-bas elliptique dordre N et de pulsation
de coupure c est defini par le carre de sa reponse frequentielle :
E
H ()2 =
1
2
1 + 2 RN
,
(2.4)
o`
u RN (x) est une fonction rationnelle de Chebyshev de degre N, un param`etre permettant de regler lamplitude de londulation en bande passante ou en bande attenuee.
Londulation en bande passante, equivalente `a un chebyshev-I, est comprise entre 1 et
1/(1 + 2 ).
4. Filtres de Bessel
Les filtres de Bessel sont interessants pour leur phase proche de la linearite. En contrepartie, ils sont ceux ayant la selectivite la plus faible.
2.1.2.3
D
enormalisation
Cette derni`ere etape permet de passer de la fonction de transfert normalisee HN orm (pN ) `
a
la fonction de transfert H(p). Nous appelons ici pN la variable de la fonction normalisee. La
denormalisation consiste donc en lapplication dune fonction f permettant de transformer
cette variable pN en la variable p = j : pN = f (p). La fonction f depend du type de filtre
specifie. Le tableau 2.2 resume les fonctions de denormalisation pour les 4 types de filtres.
passe-bas
pN =
p
c
passe-haut
pN =
c
p
passe-bande
pN = B1 p0 + p0
rejecteur-de-bande
h
i1
pN = B1 p0 + p0
21
fp
3 kHz
fa
1 kHz
1
-3 dB
2
-20 dB
2.2
M
ethode de linvariance impulsionnelle
ha(t)
(2.5)
h(nT)
t
x(t)
Ha(p)
y(t)
x(nT)
filtre analogique
H(z)
y(nt)
filtre numrique
Figure 2.3 Conservation de la reponse impulsionnelle entre les filtres analogique et numerique
Dans le cas o`
u la fonction de transfert du filtre analogique Ha (p) poss`ede N p
oles simples pi ,
on peut ecrire :
N
Ha (p) =
N (p) X ki
=
D(p)
p + pi
i=1
ha (t) =
N
X
i=1
ki epi t
22
h(nT ) =
N
X
ki epi nT
i=1
H(z) =
N
X
i=1
ki
X
z
1
ki
=
p
T
p
i
ze
1 e i T z 1
i=1
Si on etend cette formulation de H(z) `a tout type de fonction Ha (p), on peut, en utilisant la
formule des residus, obtenir une relation directe entre Ha (p) H(z) :
X
Ha (p)
(2.6)
, pi
H(z) =
Res
1 epT z 1
pi de Ha (p)
1X
2k
)
Ha (j + j
T
T
(2.7)
(2.8)
La figure 2.4 montre le resultat de la reponse frequentielle dun filtre numerique dans le cas
o`
u le filtre analogique equivalent nest pas `a bande limitee. Le phenom`ene de recouvrement
de spectre est ici important. On remarque egalement que la reponse frequentielle de H(z)
poss`ede un facteur multiplicatif 1/T (equation 2.7). Ce facteur, dont la valeur est tr`es elevee
(e.g. 10000 pour une frequence dechantillonnage de 10kHz), doit etre attenue si on veut un
filtre realisable. En pratique, on normalisera H(z) par (T ) ou par (/H(z = ej0 ). Dans ce
dernier cas, on obtiendra une valeur en = 0 equivalente au filtre analogique.
2.3
Transformation dEuler
t0
dt
t
T
(2.9)
23
Ha(p)
1
p
H()
1/T
1 z 1
E(z)
T
1 z 1
T
(2.11)
(2.12)
Dans le plan p, la derivation est obtenue par la fonction de transfert Ha (p) = p. Par consequent, la transformation dEuler realisant lapproximation dune derivee est definie par :
H(z) , H(p)|p= 1z1
(2.13)
1
1 pT
(2.14)
permet de chercher une relation entre les frequences analogique (a ) et numerique (). On
obtient :
z =
z =
1
= ejT
1 ja T
i
1
1 + ja T
1h
1 + ej2 arctan(a T )
1+
=
2
1 ja T
2
(2.15)
(2.16)
La variable z parcourt donc un cercle de centre z = 1/2 et de rayon 1/2. Le cercle unite du
plan z est donc transforme, impliquant une modification importante de la reponse frequentielle
du filtre donnee par lequation 2.16. Cependant, il ny a pas de phenom`ene de recouvrement
de spectre. La stabilite est conservee.
La section suivante montre une transformation utilisant le meme principe, mais dont les
performances en terme de reponse frequentielle sont meilleures.
24
2.4
Transformation bilin
eaire
La transformation bilineaire est issue dun syst`eme lineaire discret H(z) realisant lapproximation dune integrale par la methode des rectangles (voir figure 2.5). On peut lexprimer
comme un filtre recursif donne par :
s(nT ) = s((n 1)T ) + T
(2.17)
e(nT)
(n-1)T
nT
S(z) = z 1 S(z) + T
(2.18)
H(z) =
(2.19)
Dans le plan p, lintegration est obtenue par la fonction de transfert Ha (p) = 1/p. Par consequent, la transformation bilineaire realisant lapproximation dune integrale est definie par :
H(z) , H(p)|p= 2 1z1
(2.20)
T 1+z 1
2/T + p
2/T + ja
=
2/T p
2/T ja
(2.21)
permet de chercher une relation entre les frequences analogique (a ) et numerique (). On
obtient :
2 + ja T
= ejT
2 ja T
|z| = 1
a T
a T
a T
arg(z) = arctan(
) + arctan(
) = 2 arctan(
)
2
2
2
z = ejT arg(z) = T
z =
(2.22)
(2.23)
(2.24)
(2.25)
Les equations 2.24 et 2.25 impliquent la relation entre les pulsations analogique et numerique :
T
a T
= tan
(2.26)
2
2
25
Cette relation est tr`es importante puisquelle permet de connatre de mani`ere analytique la
transformation entre les reponses frequentielles des filtres analogique et numerique. Cette relation sappelle distorsion en frequence ou frequency warping.
La figure 2.6 montre que lensemble de laxe imaginaire du plan p est transforme vers le
cercle unite du plan z (cf. equation 2.23 et 2.24) de mani`ere bijective. De plus, le domaine
de stabilite (demi-plan gauche du plan p) est transforme vers le disque unite (figure 2.6).
Cette transformation evite donc le phenom`ene de recouvrement de spectre et conserve la
stabilite. Cependant, une compression non lineaire de laxe des frequences est realisee comme
le montrent lequation 2.26 et la figure 2.7.
plan p
plan z
z = ejT
p = ja
/T
Figure 2.7 Transformation non lineaire entre les frequences analogique et numerique :
distorsion en frequence
En consequence, la synth`ese de filtre numerique utilisant la transformation bilineaire est
utilisable quand cette compression peut etre toleree ou compensee. La figure 2.8 illustre ce
phenom`ene. Elle montre comment une reponse frequentielle `a temps continu et son gabarit
est transformee en une reponse frequentielle `a temps discret. Si les frequences critiques (i.e.
le gabarit) sont modifiees en utilisant une pr
e-distorsion (equation 2.26), alors le filtre
26
1+1
1
1-1
a p a a
|Ha(ja)|
a=2/T tan(/2)
1+1
1
1-1
|H(ej)|
p a
merique H(z).
La pre-distorsion assure que le filtre numerique ainsi synthetise entre dans le gabarit initial.
27
On sinteresse ici `
a la synth`ese dun filtre passe-bas RC du premier ordre par les methodes de
linvariance impulsionnelle et bilineaire. Soit le filtre :
Ha (p) =
1
,
1 + pc
28
Chapitre 3
Synth`
ese des filtres RIF
3.1
Introduction
N
1
X
h(n).z n
(3.1)
n=0
o`
u la reponse impulsionnelle h(n) est de longueur N .
A la difference des filtres RII, les filtres RIF ne sont realisables que dans le domaine discret.
Par consequent, leurs methodes de synth`ese ne sont pas derivees des filtres analogiques. On
distingue trois principales methodes, dont deux seront detaillees dans les sections suivantes.
1. La m
ethode du fen
etrage (windowing ) consiste `a appliquer une fenetre de taille
N au filtre ideal equivalent (voir section 3.3).
2. La m
ethode de l
echantillonnage fr
equentiel utilise la Transformee de Fourier
Discr`ete inverse depuis une fonction discr`ete representative du filtre et definie en frequence (voir section 3.4).
3. Les methodes doptimisation se concentrent sur la minimisation dun crit`ere derreur
entre la courbe reelle et le filtre ideal. La plus utilisee est la methode de Parks and
McClellan [PM73], qui reformule le probl`eme de synth`ese de filtre sous la forme dune
approximation polynomiale.
3.2
Filtres `
a phase lin
eaire
Les filtres RIF ont la particularite de pouvoir presenter une phase lineaire. Puisque pour
les syst`emes causaux une phase nulle dans la bande passante nest pas realisable, une phase
exactement lineaire evitera la modification de la forme du signal, cest `a dire le phenom`ene de
distorsion qui peut etre tr`es genant, en particulier dans les syst`emes audio. En effet, une phase
lineaire implique un temps de propagation de groupe constant, et, par consequent, leffet de
la phase sur le signal sera un simple decalage temporel. On posera pour ce type de filtre :
H(ej ) = A(ej )ej+j ,
29
(3.2)
30
o`
u et sont des constantes et A(ej ) une fonction reelle, eventuellement bipolaire, de que
lon nommera plus tard pseudo-module 1 (ou amplitude). Dans ce cas, le temps de propagation
de groupe g() = d()
eaire
d sera constant et aura pour valeur . () est ici la phase lin
du filtre valant () = + . On distinguera par la suite quatre types de filtres selon les
valeurs de et et de la parite de N .
Le filtre H(z) et sa reponse frequentielle H(ej ) sont donnes par :
H(z) =
N
1
X
h(n).z n
(3.3)
n=0
H(ej ) = H(z)|z=ej =
N
1
X
h(n).ejn
(3.4)
n=0
j arg()
1er cas : () = ,
(3.5)
j()
= A(e )e
Dans ce cas :
N
1
X
(3.6)
h(n).ejn =
N
1
X
n=0
n=0
h(n)[cos n j sin n]
(3.7)
(3.8)
En identifiant les parties reelles et imaginaires des deux equations precedentes, il est possible
dobtenir le syst`eme dequation suivant :
(
PN 1
A(ej ) cos = n=0
h(n) cos n
P
(3.9)
N 1
A(ej ) sin = n=0
h(n) sin n
N
1
X
n=0
N
1
X
n=0
N
1
X
(3.10)
n=0
(3.11)
Lequation 3.11 resume donc la condition sur la reponse impulsionnelle pour que le filtre soit
`a phase lineaire.
Si 6= 0, on montre que lequation 3.11 est equivalente `a :
= N 21
h(n) = h(N 1 n) pour 0 n
(3.12)
3.2 Filtres `
a phase lineaire
31
h(n) sin[( n) + ] = 0
(3.13)
= /2
= N 21
(3.14)
3.2.1
Filtre RIF `
a phase lin
eaire de type I
Un filtre RIF `
a phase lineaire de type I est defini par une reponse impulsionnelle symetrique :
h(n) = h(N 1 n),
avec N impair. Le retard =
N 1
2
0n
(3.15)
H(e ) = A(e )e
N
1
X
h(n).ejn
(3.16)
n=0
j N1
H(ej ) = e
2
X
an . cos(n)
(3.17)
n=0
N 1
)
2
N 1
n),
= 2h(
2
(3.18)
a0 = h(
an
3.2.2
n = 1, . . .
N 1
2
(3.19)
Filtre RIF `
a phase lin
eaire de type II
Un filtre RIF `
a phase lineaire de type II est defini par une reponse impulsionnelle symetrique
comme dans lequation 3.15, avec N pair. Le retard = N 21 nest pas un entier. La reponse
frequentielle du filtre est :
N
j N1
2
H(e ) = e
bn = 2h(
2
X
1
bn . cos[(n )]
2
n=1
N
n),
2
n = 1, . . .
N
2
(3.20)
(3.21)
32
Remarque :
si = alors cos[(n 21 )] = 0 ce qui implique que H(ej ) = 0. Par
consequent, un filtrage ne respectant pas cette contrainte (e.g. un filtre passe-haut) est impossible `a realiser avec un filtre de type II.
3.2.3
Filtre RIF `
a phase lin
eaire de type III
Un filtre RIF `
a phase lineaire de type III est defini par une reponse impulsionnelle antisymetrique :
h(n) = h(N 1 n),
0n
(3.22)
N 1
2
j N1
2
H(e ) = je
2
X
cn . sin(n)
(3.23)
n=1
N 1
cn = 2h(
n),
2
n = 1, . . .
N 1
2
(3.24)
3.2.4
Filtre RIF `
a phase lin
eaire de type IV
Un filtre RIF `
a phase lineaire de type III est defini par une reponse impulsionnelle antisymetrique comme dans lequation 3.22, avec N pair. Le retard = N 21 nest pas un entier,
= /2. La reponse frequentielle du filtre est :
N
H(ej ) = jej
N1
2
X
n=1
dn = 2h(
N
n),
2
1
dn . sin[(n )]
2
n = 1, . . .
N
2
(3.25)
(3.26)
3.2 Filtres `
a phase lineaire
33
h(n)
h(n)
N-1
N-1
2
b) Filtre de type II
a) Filtre de type I
h(n)
h(n)
N-1
N-1
2
d) Filtre de type IV
34
3.3
M
ethode de synth`
ese par fen
etrage
Soit un filtre numerique ideal H(ej ), periodique de periode 2. Il est decomposable en serie
de Fourier par sa reponse impulsionnelle :
H(ej ) =
h(n)ejn
(3.27)
n=
(3.28)
h(n) =
0, n < 0 et n N
h(n)
= h(n).w(n)
(3.29)
Dans lexemple precedent, w(n) est la fenetre rectangulaire r(n) definie par :
1, 0 n < N
r(n) =
0, n < 0 et n N
j ) :
On peut alors etudier la reponse frequentielle du filtre RIF ainsi synthetise H(e
j ) = H(z)|
H(e
z=ej =
N
1
X
h(n).w(n).ejn
(3.30)
n=0
j ) =
H(e
1
2
H(ej )W (ej() )d
= H(e ) W (ej )
(3.31)
(3.32)
35
W()
^
H()
Figure 3.2 Processus de convolution de la reponse frequentielle du filtre ideal par la fenetre
la fenetre etudiee dans lexemple precedent. Donner et tracer les valeurs de h(n).
j ).
4. Donner une formule analytique de la reponse frequentielle du filtre H(e
5. Tracer son module et sa phase.
36
3.3.1
Caract
eristiques des principales fen
etres
Les principales fenetres utilisees sont detaillees `a la figure 3.3. Elles sont definies par les
equations ci dessous :
Rectangulaire
1, 0 n < N
(3.33)
w(n) =
0, n < 0 et n N
Triangulaire (Bartlett)
w(n) =
Hanning
w(n) =
2n
N 1 ,
2n
N 1 ,
0 n N21
N 1
2 nN 1
0, n < 0 et n N
2n
N 1
Hamming
w(n) =
w(n) =
2n
N 1
+ 0.08 cos
, 0nN 1
(3.35)
(3.36)
0, n < 0 et n N
2n
N 1
Blackman
(3.34)
, 0nN 1
0, n < 0 et n N
4n
N 1
, 0nN 1
0, n < 0 et n N
(3.37)
Rectangulaire
Bartlett
Hanning
Hamming
Blackman
0.8
w(n)
0.6
0.4
0.2
10
20
30
40
50
60
37
N = 64. On voit que selon la fenetre, la largeur du lobe principal et lamplitude du plus grand
lobe secondaire diff`erent. Par exemple, la fenetre rectangulaire poss`ede le lobe principal le
plus etroit (4/N ), mais le lobe secondaire le moins attenue (13dB). Le tableau 3.1 resume
ces caracteristiques. On y voit en particulier quen utilisant une fenetre sans discontinuite et
plus lisse (e.g. Hamming ou Blackman), on peut reduire de mani`ere importante lamplitude
des lobes secondaires parasites. La colonne de droite est en relation avec la synth`ese RIF et
sera detaillee dans la section suivante.
Fentre de Bartlett
0
20
20
W dB
W dB
Fentre rectangulaire
0
40
60
60
0
0.1
0.2
0.3
0.4
Fentre de Hanning
80
0.5
20
20
W dB
W dB
80
40
40
60
80
0.1
0.1
0.2
0.3
0.4
Fentre de Hamming
0.5
40
60
0.1
0.1
0.2
0.3
0.4
Fentre de Blackman
0.5
80
0.2
0.3
0.4
0.5
W dB
20
40
60
80
0.2
0.3
0.4
0.5
3.3.2
Choix de la fen
etre dans la m
ethode de synth`
ese
On voit donc que le choix de la fenetre aura une influence sur les performances du filtre.
En particulier, les caracteristiques importantes et leur influence sur le filtre synthetise sont
detaillees ci dessous.
La largeur de la zone de transition = |p a | definie `a la section 1.3.2 sera
directement fonction de la largeur du lobe principal m donnee dans le tableau 3.1.
Lorsque la frequence de coupure ou de transition du filtre nest pas trop proche de 0
ou de , on peut considerer que
= 2 m . On voit donc que la transition sera
38
Rectangulaire
Bartlett
Hanning
Hamming
Blackman
Rapport damplitude
entre lobe principal
et lobe secondaire
13dB
25dB
31dB
41dB
57dB
Largeur du lobe
principal m
Attenuation minimale
en bande attenuee A
4/N
8/N
8/N
8/N
12/N
-21dB
-25dB
-44dB
-53dB
-74dB
^
H()
1+A
1
1A
H()
W()
La procedure de synth`ese dun filtre numerique RIF par fenetrage `a partir de la reponse
impulsionnelle dun filtre ideal h(n) consiste `a :
1. choisir en fonction de lattenuation A le type de fenetre `a utiliser,
2. choisir en fonction de la largeur de la zone de transition et du type de la fenetre
w(n) la longueur de la reponse impulsionnelle N .
39
3.4
M
ethode de synth`
ese par
echantillonnage en fr
equence
(3.38)
H(ej)
H(ke)
1
):
= 2. Le filtre RIF h(n)
est alors trouve par TFD inverse de H(e
h(n)
=
N 1
1 X jke 2j n.k
N , n = 0, 1 . . . N 1
H(e
)e
N
(3.39)
k=0
h(n)
= 0, ailleurs
(3.40)
Cette methode de synth`ese est tr`es simple et permet de realiser toute forme de filtre. De plus,
elle peut etre combinee avec la methode du fenetrage. La fonction de transfert en Z du filtre
40
sera :
H(z)
=
N
1
X
h(n)z
(3.41)
n=0
N
z n
H(z)
=
h(n)z
=
H(e
)e
N
n=0
n=0
k=0
#
"N 1
N
1
X
X
n.k
1
jke )
e2j N z n
H(z)
=
H(e
N
H(z)
=
H(z)
=
1
N
(3.42)
(3.43)
n=0
k=0
N
1
X
N.k
2j N N
z
jke ) 1 e
H(e
k
2j N
1e
z 1
k=0
N 1
1 z N X jke
1
H(e
)
k
N
1 e2j N z 1
(3.44)
(3.45)
k=0
2. Calculer h(n)
par TFD inverse.
Chapitre 4
Transform
ee de Fourier Rapide
4.1
Naissance de la TFR
La transformation de Fourier rapide (TFR), ou encore Fast Fourier Transform (FFT), est
directement issue dune reorganisation du calcul des matrices de la transformee de Fourier
discr`ete (TFD) dont la definition est donnee dans les equations 4.1 et 4.2. X(k) est la TFD
du signal x(n). N points du signal x(n) donnent N points de la TFD X(k).
X(k) =
N
1
X
x(n).e(2j
n.k
)
N
n=0
x(n) =
, k = 0, 1 . . . N 1
N 1
n.k
1 X
X(k).e(2j N ) , n = 0, 1 . . . N 1
N
(4.1)
(4.2)
k=0
X(0)
X(1)
..
.
X(N 1)
1
1
..
=
.
1
WN1
..
.
1
WN2
..
.
..
.
WN2
WNN 1
WN4
2(N 1)
WN
x(0)
x(1)
..
.
2(N 1)
WN
x(N 1)
(N 1)2
WN
WNN 1
..
.
(4.3)
La TFD revient `
a calculer un produit matrice-vecteur o`
u chaque element est de type complexe.
La complexite de calcul de la TFD est donc de N 2 multiplications, et de N (N 1) additions
sur des nombres complexes. Ceci revient `a une complexite de 4N 2 multiplications reelles et
N (4N 2) additions reelles. Cet algorithme se comporte donc en O(N 2 ), mais ne poss`ede pas
de probl`emes dadressage car les x(n) et les WNk sont ranges dans lordre en memoire.
En exploitant les proprietes des WNk (symetrie, periodicite, ...) :
41
42
k(N n)
= (WNkn )
k(n+N )
= WN
WN
WN
n+N/2
WN
WN2kn
(4.4)
n(k+N )
= WNkn
(4.5)
= WNn
=
(4.6)
kn
WN/2
(4.7)
4.2
TFR partag
ee dans le temps (DIT)
Depuis la formule 4.1, on partage X(k) en une somme sur les termes dindices pairs et une
autre sur les termes dindices impairs, dans notre exemple on se limitera au cas o`
u N est une
puissance de deux.
X
X
X(k) =
x(n).WNnk +
x(n).WNnk
(4.8)
n pair
n impair
N/21
X(k) =
N/21
x(2n).WN2nk +
nk
x(2n).WN/2
+ WNk
n=0
(4.9)
N/21
n=0
(2n+1)k
x(2n + 1).WN
n=0
N/21
X(k) =
nk
x(2n + 1).WN/2
(4.10)
n=0
(4.11)
43
N
X(k + ) =
2
X(k +
N/21
N/21
n(k+N/2)
x(2n).WN/2
(k+N/2)
WN
n(k+N/2)
x(2n + 1).WN/2
(4.12)
n=0
n=0
N
) = G(k) WNk .H(k)
2
(4.13)
W80
TFD
x(4)
W81
N/2 points
W82
x(6)
W83
x(1)
x(3)
W84
TFD
x(5)
W85
N/2 points
W86
x(7)
W87
X(0)
X(1)
X(2)
X(3)
X(4)
X(5)
X(6)
X(7)
Xm (q)
Xm+1 (p)
W rN
-1
Xm+1 (q)
(4.14)
44
Un papillon DIT, dont les equations sont donnees ci dessus (4.14) necessite 1 multiplication,
1 addition et 1 soustraction sur des nombres complexes. Le graphe complet necessite le calcul
de N2 log2 N papillons ce qui donne donc en unite de calcul :
N2 log2 N multiplications de nombres complexes,
N log2 N additions/soustractions de nombres complexes, ou,
2N log2 N multiplications de nombre reels 1 ,
3N log2 N additions/soustractions de nombre reels 2 .
Cette complexite precise peut servir `a evaluer le temps de calcul dune TFR compl`ete sur
nimporte quel processeur.
X(0)
X(0)
X(1)
X(8)
X(2)
X(4)
X(3)
X(12)
X(4)
X(2)
X(5)
X(10)
X(6)
X(6)
X(7)
X(14)
X(8)
X(1)
X(9)
X(9)
X(10)
X(5)
X(11)
X(13)
X(12)
X(3)
X(13)
X(11)
X(14)
X(7)
X(15)
X(15)
45
Si Xm (.) et Xm+1 (.) peuvent etre places en memoire sur le meme vecteur on parle de calcul en
place. De plus, le fait de faire apparatre la separation pair/impair au depart (DIT) puis de
separer `a nouveau en N/4, N/8,... groupes dechantillons, implique en entree des echantillons
dont les adresses suivent un ordre appele bit-reverse tel que :
si la representation en binaire de lindice (n) est (nb . . . n2 n1 n0 ) alors celle de son bitreverse (n ) est (n0 n1 n2 . . . nb ).
A loppose de la TFD, la TFR gen`ere un calcul dadresse non negligeable. Entre deux etages m
et m+1, les W k ne varient pas lineairement avec les x(k). De plus, il est necessaire de presenter
`a lalgorithme les echantillons dans un ordre non regulier (bit-reverse) ce qui engendre un calcul
dadresse supplementaire. Ces probl`emes ne sont pas negligeables - surtout sur un processeur
general - car ils rajoutent `
a la complexite elementaire une complexite dadressage.
4.3
TFR partag
ee dans les fr
equences (DIF)
Depuis la formule 4.1, on partage X(k) en une somme sur les N/2 premiers termes et une
autre sur les N/2 autres termes :
N/21
X(k) =
x(n).WNnk
n=0
N
1
X
x().WNnk
N/21
N/21
X(k) =
x(n).WNnk
N/21 h
n=0
kN/2
WN
x(n + N/2).WNnk
(4.16)
n=0
n=0
X(k) =
(4.15)
n=N/2
i
x(n) + (1)k .x(n + N/2) WNnk
(4.17)
X(2p) =
(4.18)
(4.19)
n=0
N/21
X(2p + 1) =
n=0
N/21
X(2p) =
pk
[x(n) + x(n + N/2)] WN/2
(4.20)
n=0
X(2p + 1) =
N/21
n=0
pk
.WNn
[x(n) x(n + N/2)] WN/2
(4.21)
De meme que pour le partage temporel, le remaniement des equations am`ene le calcul de deux
TFD dordre inferieur selon le schema de la figure 4.4.
46
X(0)
x(1)
X(2)
TFD
x(2)
X(4)
N/2 points
x(3)
X(6)
x(4)
X(1)
W80
x(5)
TFD
W81
x(6)
W82
x(7)
X(3)
N/2 points
X(5)
X(7)
W83
Xm+1 (p)
Xm (q)
-1
W rN
Xm+1 (q)
(4.22)
La complexite elementaire est identique `a la TFR partagee dans le temps, la seule difference
reside dans le calcul dadresse de la table des W k lors des etapes, qui est plus simple `
a
programmer dans le cas DIF. De plus ce sont les echantillons en sortie qui sont places en
ordre bit-reverse.
4.4
Divers param`etres permettent de modifier la structure du graphe flot de donnees de la Transformee de Fourier Rapide (mode dadressage, structure graphique, base du calcul), nous allons
essayer den enumerer les principaux.
Le graphe `
a geometrie constante se caracterise par le fait que chaque passe du calcul poss`ede
la meme structure graphique que les autres passes. Celui-ci est directement issu de la decomposition de la matrice [W ] de la transformee de Fourier discr`ete en matrices de Good [Ka91]
selon la relation ci-dessous.
47
W =
log
2N
Y
Di .Ci
i=1
X(0)
1 1 0 0
1
X(1) 0 0 1 1 0
X(2) = 1 1 0 0 0
X(3)
0 0 1 1
0
x(0)
0
1
0
0
1
0 0
1 1 0 0
x(0)
0 0
0 0 1 1 x(1)
1 0
1 1 0 0
x(2)
0 W
0 0 1 1
x(3)
1
(4.23)
X(0)
x(2)
1
x(1)
x(3)
-1
W1
X(1)
X(2)
X(3)
X(2)
X(3)
X(4)
0
X(10)
X(6)
X(14)
0
X(1)
X(5)
0
0
X(6)
X(7)
0
X(9)
0
X(5)
X(3)
DIT:
(Dcimation en
temps)
X(13)
X(14)
FFT
X(15)
FFT inverse
A = A + BW
B = A - BW
W= e
X(12)
-2j
N
k
k
A = A + BW
B = A - BW
W= e
-2j
N
-k
-k
k
B
X(11)
X(7)
X(10)
3
0
X(15)
X(9)
2
0
X(13)
X(11)
X(8)
X(12)
48
X(2)
0
X(4)
4.5
X(1)
X(8)
X(0)
X(0)
4.5.1
X(0)
X(1)
X(2)
X(6)
X(7)
X(8)
X(9)
X(10)
X(11)
X(12)
X(13)
X(14)
X(15)
frquence)
W= e
X(6)
0
X(14)
A = A + B
B = (A-B) W
W= e
-2j
N
X(9)
X(5)
X(13)
X(3)
X(11)
X(7)
X(15)
FFT inverse
-2j
N
X(10)
X(1)
FFT
A = A + B
B = (A-B) W
X(12)
X(2)
X(5)
(Dcimation en
-k
X(4)
DIF:
X(4)
X(3)
X(8)
X(0)
4.5.2
k
B
49
X(1)
X(4)
X(12)
X(2)
X(3)
X(2)
X(10)
X(4)
X(5)
X(6)
X(14)
X(6)
X(7)
X(1)
X(9)
X(8)
X(9)
X(5)
X(13)
X(10)
X(11)
X(3)
X(11)
X(12)
X(13)
X(7)
X(15)
X(14)
FFT
Gomtrie
Constante
FFT inverse
A' = A + BW
B' = A - BW
W= e
-2j
N
k
k
A' = A + BW
B' = A - BW
W= e
-2j
N
X(15)
-k
-k
X(8)
X(0)
X(0)
50
4.5.3
X(0)
X(1)
X(8)
X(2)
X(3)
X(2)
X(5)
X(6)
X(7)
X(14)
X(8)
X(1)
X(10)
X(9)
X(6)
X(9)
X(10)
X(5)
X(11)
X(13)
X(12)
X(3)
X(13)
X(11)
X(14)
X(15)
X(7)
X(15)
FFT inverse
A = A+B+C+D
-k
B = (A-jB-C+jD)W
-2k
C = (A-B+C-D)W
D = (A+jB-C-jD)W -3k
FFT
A = A+B+C+D
k
B = (A-jB-C+jD)W
2k
C = (A-B+C-D)W
D = (A+jB-C-jD)W 3k
W=e
-2j
N
W=e
-2j
N
X(12)
X(4)
X(4)
X(0)
4.5.4
A
B
k
C
D
2k
3k D
51
52
4.5.5
K:= I / I1;
POUR j DE 0 `
a I2-1 FAIRE
C:=Wr[k]; -- COS (2p k / I)
S:=Wi[k]; -- SIN(2p k / I)
k:=k + K;
POUR i DE j a
` I-1 PAR I1 FAIRE
l:=i + I2;
--- papillon X[i] X[l]
--- X[i] = X[i] + X[l]
--- X[l] = (X[i] - X[l])
t.r:=X[i].r - X[l].r;
t.i:=X[i].i - X[l].i;
X[i].r := X[i].r + X[l].r;
53
54
Chapitre 5
Introduction
Une des applications majeures utilisant la transformee de Fourier Discr`ete (TFD) en TNS
est lanalyse du contenu frequentiel (spectre) de signaux continus. Le principe de lanalyse
de Fourier numerique dun signal analogique deterministe est represente `a la figure 5.1. La
numerisation du signal continu xc (t) est effectuee de mani`ere classique par un filtre antirepliement suivi dun convertisseur analogique-numerique. Le signal discret x(n) est ensuite
multiplie par une fonction w(n) nommee fenetre temporelle sur N points. Ce fenetrage est
une consequence de la contrainte de duree finie imposee par la TFD qui ne peut seffectuer sur
un nombre infini dechantillons. Le signal resultant xN (n), dont on pourra ensuite analyser le
spectre par TFD (ou par TFR) puis par un calcul du module et eventuellement de la phase,
est donc representatif dune observation limitee du signal dentree sur un horizon dobservation T0 = N.T . Leffet de cette troncature temporelle, indispensable au calcul numerique de
lanalyse spectrale, va etre etudie dans les sections suivantes.
xc(t)
Filtre P.Bas
anti-repliement
c =
CAN
Fe
x(n)
x
xN(n)
FFT
||2
fentre wN(n)
Figure 5.1 Principe de lanalyse de Fourier numerique dun signal analogique deterministe
5.2
5.2.1
56
(5.1)
La fenetre la plus intuitive est une fenetre sans ponderation, cest `a dire une fenetre rectangulaire notee wr (n) definie par :
1 si 0 n N 1
wr (n) =
(5.2)
0 ailleurs
La version tronquee du signal discretise secrit donc finalement dans le cas de la fenetre
rectangulaire :
N
1
X
xN (n) = x(n) wr (n) =
x(k) (n k)
(5.3)
k=0
5.2.2
Cons
equences dans le domaine fr
equentiel
La TF de (5.1) donne
XN (ej ) = X(ej ) W (ej )
Z
1
=
X(ej ).W (ej() ) d
2
(5.4)
o`
u W (ej ) est la representation de la fenetre dans le domaine frequentiel.
Dans le cas de la fenetre rectangulaire, on a :
W (ej ) = Wr (ej ) = ej
N1
2
sin(N /2)
sin(/2)
(5.5)
Une representation de la fenetre wr (n) ainsi que du module de sa TF est donnee `a la figure
5.2.
Exemple 5.2.1 : Calculer la TF Wr (ej ) de la fenetre rectangulaire wr (n) et demontrez quelle secrit comme dans lequation 5.5.
Les consequences obtenues dans le domaine frequentiel sont issues de la convolution spectrale
illustree par lequation 5.4. On obtient donc :
un lissage de la representation spectrale qui implique une perte de finesse de lanalyse
en frequence et un masquage des raies trop proches en frequence,
des ondulations dans la reponse frequentielle dues aux effets des lobes secondaires de
W (ej ), entranant du bruit et du masquage en amplitude.
5.3
La troncature du signal sur N points nest pas le seul effet dapproximation obtenu lors de
lanalyse spectrale. En effet, lequation 5.4 de convolution spectrale est une fonction de la
variable continue . Ce calcul nest donc pas realisable sur un processeur numerique et doit
donc etre approxime par la transformee de Fourier discr`ete (TFD, voir polycopie EII1).
57
fentre rectangulaire
1
0.6
w [n]
0.8
0.4
0.2
0
10
15
n
20
25
30
(j.2.pi.f))
|W (e
Amplitude
0.8
0.6
0.4
0.2
0
0.5
0.4
0.3
0.2
0.1
0
f
0.1
0.2
0.3
0.4
0.5
58
La derni`ere etape de lanalyse spectrale est donc le calcul de le TFD du signal fenetre xN (n).
On obtient alors :
XN (k) =
L1
X
xN (n)ej
2kn
N
n=0
k = 0, 1, . . . , L 1,
(5.6)
o`
u la longueur de la fenetre N est inferieure ou egale `a la longueur de la TFD L. On prendra
le plus souvent L = N , sauf dans le cas du zero-padding (voir section 5.4).
Comme illustree dans le chapitre sur la TFD (voir polycopie EII1), la relation entre la TF
XN (ej ) de xN (n) (equation 5.4) et XN (k) secrit :
XN (k) = XN (ej )=2k/L
(5.7)
Lespace entre deux points frequentiels de lanalyse est donc de 2/L et la relation entre les
points dindice k de la TFD et les frequences continues fk est donnee par :
k =
k
2k
fk =
L
LT
(5.8)
xN(n)
0.5
0
0.5
1
10
15
20
(b) : XN(ej2pif)=TF{xN(n(}
25
30
35
20
15
10
5
0
0.5
0.4
0.3
0.2
0.1
0
0.1
(c) : XN(k)=TFD{xN(n)}
0.2
0.3
0.4
0.5
0.4
0.3
0.2
0.1
0.2
0.3
0.4
0.5
15
10
5
0
0.5
0.1
5.4 Zero-Padding
59
La figure 5.3 illustre lanalyse spectrale par TFD sur un signal sinusodal discret. Le signal
x(t) = cos(2f0 t) est echantillonne puis tronque sur N = 32 points par une fenetre rectangulaire (voir figure 5.3(a)). La figure 5.3(b) represente la TF XN (ej ) de xN (n) et illustre
le probl`eme de la troncature temporelle presente dans la section precedente. En effet, la TF
dun cosinus etant composee de deux impulsions de Dirac situee en f0 et f0 , alors la TF du
signal fenetre est composee de la somme des TF de la fenetre decalees en f0 et f0 (ce que
vous devez avoir trouve si vous avez resolu lexemple page 57).
La figure 5.3(c) represente le resultat du calcul de la TFD sur L = 32 points du signal xN (n)
et souligne donc lerreur due `
a lechantillonnage en frequence effectue lors de la TFD. La TFD
XN (k) est une version echantillonnee de XN (ej ), dans laquelle lespace entre deux points
successifs represente F e/L (ici F e/32). Une erreur visible ici est donc que plusieurs raies
spectrales peuvent etre distinguees apr`es TFD, pour uniquement deux raies effectives dans le
spectre theorique de x(t) = cos(2f0 t).
5.4
Z
ero-Padding
5.5
Param`
etres dune analyse spectrale
(5.10)
1
[(f + 0, 175) + (f 0, 175) + (f + 0, 2) + (f 0, 2)
2
+0, 25 (f + 0, 4) + 0, 25 (f 0, 4)]
(5.11)
60
10
5
0
0.5
10
0.4
0.3
0.2
0.1
0.1
0.2
0.3
0.4
0.5
0.4
0.3
0.2
0.1
0.1
0.2
0.3
0.4
0.5
0.4
0.3
0.2
0.1
0.1
0.2
0.3
0.4
0.5
0.4
0.3
0.2
0.1
0.1
0.2
0.3
0.4
0.5
5
0
0.5
10
5
0
0.5
10
5
0
0.5
Figure 5.4 Effet du zero-padding sur lanalyse de Fourier dune fenetre rectangulaire de
N = 8 points.
61
Le spectre XN ej2f de xN (n) utilisant une fenetre rectangulaire est donc donne par
=
XN ej2f
1h
Wr (ej2(f +0,175) + Wr (ej2(f 0,175) + Wr (ej2(f +0,2) + Wr (ej2(f 0,2)
2
i
+0, 25 Wr (ej2(f +0,4) + 0, 25 Wr (ej2(f 0,4)
(5.12)
0.5
0
0.5
1.5
0.4
0.3
0.2
0.1Spectre pour
0
N=210.1
0.2
0.3
0.4
0.5
0.4
0.3
0.2
0.1Spectre pour
0
N=410.1
0.2
0.3
0.4
0.5
0.4
0.3
0.2
0.1
0 N=121
0.1
Spectre pour
0.2
0.3
0.4
0.5
0.4
0.3
0.2
0.1
0.2
0.3
0.4
0.5
1
0.5
0
0.5
1.5
1
0.5
0
0.5
1.5
1
0.5
0
0.5
0.1
Figure 5.5 Spectre (theorique puis utilisant des fenetres rectangulaires de differentes tailles
N ) de trois sinusodes
La relation (5.4) montre clairement que la qualite du resultat de la TF, cest-`
a-dire ladequation avec le resultat theorique que lon aurait sans troncature, depend du type de fenetre
utilise. La section 3.3.1 du chapitre 3 page 36 a resume les principales des fenetres utilisees en
TNS ainsi que leurs caracteristiques. Le tableau 5.1 resume ces caracteristiques. La figure 5.6
represente un exemple de TF dune fonction w(n) de fenetrage et en definit ses param`etres :
largeur du lobe principal : m ,
(s )|
rapport damplitude entre lobe principal et lobe secondaire : = 20 log |W
u s
|W (0)| , o`
est la frequence correspondant au maximum damplitude des lobes secondaires.
Dans une analyse spectrale, on definit deux type de resolution : la resolution en frequence et
la resolution en amplitude.
62
Rapport damplitude
entre lobe principal
et lobe secondaire
13dB
25dB
31dB
41dB
57dB
Rectangulaire
Bartlett
Hanning
Hamming
Blackman
Largeur du lobe
principal m
4/N
8/N
8/N
8/N
12/N
W()
m/2
m
f
fe/2
1/NT fs
0.5
0
0.1
1
0.12
0.14
0.16
0.18 N=128,
0.2fenetre 0.22
0.24
Spectre pour
rectangulaire
0.26
0.28
0.3
0.12
0.14
0.16
0.18 N=128,
0.2fenetre 0.22
0.24
Spectre pour
de Hamming
0.26
0.28
0.3
0.12
0.14
0.16
0.18 N=256,
0.2fenetre 0.22
0.24
Spectre pour
de Hamming
0.26
0.28
0.3
0.12
0.14
0.16
0.26
0.28
0.3
0.5
0
0.1
0.6
0.4
0.2
0
0.1
0.6
0.4
0.2
0
0.1
0.18
0.2
0.22
0.24
Figure 5.7 Spectre (theorique puis utilisant des fenetres rectangulaires et de Hamming de
differentes taille N ) de trois sinusodes
63
R
esolution en fr
equence : la finesse en frequence est la capacite de lanalyseur `
a
distinguer deux raies spectrales proches lune de lautre. Clairement, ce phenom`ene,
connu aussi sous le nom de masquage frequentiel, depend de la largeur du lobe principal de la reponse frequentielle WN (ej ) de la fenetre (m du tableau 5.1). En effet,
deux raies proches dun espace < m se verront confondues apr`es lanalyse par TFD.
La figure 5.5 illustre ce phenom`ene puisque lanalyse pour N = 21 ne permet pas de
distinguer les raies en f = 0.2 et f = 0.175, tandis que des valeurs de N = 41 ou
N = 121 le permettent.
On definit donc la resolution en frequence comme : m .
Cette resolution peut etre amelioree en augmentant le nombre de points N de lanalyse
et depend du type de fenetre utilisee.
R
esolution en amplitude : la finesse en amplitude est la capacite de lanalyseur `
a
distinguer des raies spectrales de faible amplitude ou `a distinguer une raie spectrale
de faible amplitude proche dune autre plus importante. Dans cas, ce sont les lobes
secondaires de de la reponse frequentielle WN (ej ) de la fenetre qui viennent masquer
une raie de faible amplitude en ajoutant un bruit `a lanalyse. La figure 5.7 illustre ce
phenom`ene puisque lanalyse pour N = 128 par fenetre rectangulaire ne permet pas de
distinguer la raie en f = 0.2 damplitude 0.25 parmi le bruit d
u aux lobes secondaires,
tandis quune fenetre de Hamming et des valeurs de N = 128 ou N = 256 le permettent.
On definit donc la resolution en amplitude comme le rapport damplitude entre lobe
principal et lobe secondaire : .
Cette resolution nest pas fonction du nombre de points N de lanalyse mais depend
fortement du type de fenetre utilisee.
5.6
Conclusion (m
ethodologie)
Lanalyse spectrale de signaux deterministes requiert donc trois etudes prealables importantes :
1. le signal x(t) X(f ) doit etre correctement
echantillonn
e pour obtenir les echantillons x(n) qui seront pris en compte par bloc (segment) de N
echantillons ;
2. ces bloc seront conditionn
es par multiplication par une fen
etre, de taille
N ,w(n), `
a choisir en fonction des performances attendues :
(a) la resolution en amplitude souhaitee choix du type de fenetre,
(b) la resolution en frequence souhaitee m choix de N ;
3. finalement les blocs fenetres, xN (n) sont transformes dans le domaine spectral par TFD
(calculee par lalgorithme FFT). Le resultat (les XN (k)) est une replique correcte du
vrai spectre X(f ) si les erreurs suivantes sont suffisamment faibles :
(a) erreur de recouvrement de spectres (Aliasing error en anglais) (bien choisir la frequence dechantillonnage et utiliser un filtre passe-bas antirepliement) ;
64
On peut donc finalement representer facilement lanalyse de Fourier numerique dun signal
analogique deterministe comme indiquee `a la Figure 5.1.
Exemple 5.6.1 : Simulation avec Matlab Dans un script Matlab, redigez un
programme qui permet de :
1. generer et afficher `
a lecran N = 10 points dune sinusode x1 (t) = a cos 2f1 t
de f1 = 100Hz echantillonee `a Fe = 1000Hz et damplitude a = 2 ;
(a) effectuer une analyse de Fourier elementaire (sans zero-padding) de ce
signal et afficher le resultat sur lintervalle principal de frequences normalisees [1/2 ; +1/2[ ;
(b) refaire une analyse de Fourier de ce signal avec divers choix de zeropadding ;
(c) explorer linfluence de divers types de fenetrages effectues sur le signal ;
2. regenerer et afficher `
a lecran le meme signal que precedemment mais cette
fois avec N = 15 points ;
(a) refaire la meme etude que precedemment ;
(b) ajouter une seconde sinusode et rendre compte de la pertinence de lanalyse effectuee en fonction de lecart en frequence des deux composantes
elementaire du signal.
(c) considerer deux sinusodes proches `a la limite de resolution constatee au
point precedent et ajouter une troisi`eme sinusode faible et eloignee des
precedentes ; analysez alors linfluence de differentes fenetres dans cette
situation (resolution des deux sinusodes proches et detection de la sinusode faible eloignee).
Chapitre 6
Syst`
emes multi-cadences
Les syst`emes de TNS utilises jusqualors ne consid`erent quune seule frequence dechantillonnage F e. Les syst`emes multi-cadences changent la frequence dechantillonnage au cours de la
chane de traitement afin quelle soit la plus adaptee aux traitements `a realiser. Par exemple,
il est aise de comprendre quapr`es un filtrage selectif passe-bas il est possible de reduire la
frequence dechantillonnage `
a une valeur equivalente `a deux fois la bande passante du filtre
passe-bas realise, sans pour autant transgresser le theor`eme dechantillonnage de Shannon.
Cette reduction permet de diminuer la complexite du filtrage `a realiser.
Les principaux operateurs utilises en traitement du signal multi-cadences sont la decimation
(reduction dun facteur M de la frequence dechantillonnage) et linterpolation (augmentation
dun facteur M de la frequence dechantillonnage) ou une combinaison des deux.
6.1
R
eduction de la fr
equence d
echantillonnage
(6.1)
66
Syst`emes multi-cadences
x(nT)
xd(nT')
T' = MT
Figure 6.1 Decimation dun signal
Il est utile de chercher une relation entre le spectre de x(n) et celui de xd (n). On peut poser :
X(ej ) =
1 X
2k
Xc j
T
T
T
(6.2)
k=
De mani`ere similaire :
2l
2l
1 X
1 X
=
Xd (e ) =
Xc j
Xc j
T
T
T
MT
MT
MT
j
l=
(6.3)
l=
Afin de trouver la relation entre les equations 6.2 et 6.3 les indices des sommes peuvent etre
exprimes par l = i + kM o`
u 0 i M 1 et lequation 6.3 peut etre reecrite de la mani`ere
suivante :
"
#
M
1
X
X
2k
1
1
2i
(6.4)
Xc j
Xd (ej ) =
M
T
MT
T
i=0
k=
M 1
1 X
X(ej(/M 2i/M ) )
M
(6.5)
i=0
6.2
Augmentation de la fr
equence d
echantillonnage
67
xc(t)
1
x(nT)
/T
xd(nT')
T'
Xc()
1/T
X(ej)
1/T'
Xd(ej)
/T'
/T
/T'
Figure 6.2 Representation dun signal continu xc (t) et de son echantillonnage `a 2 frequences
differentes et de leurs spectres respectifs
x(nT)
v(nT)
y(nT')
68
Syst`emes multi-cadences
on posera donc le resultat de linterpolation de x(n) dun facteur L par la relation suivante :
xi (n) = xc (nT ) = xc (nT /L),
(6.7)
6.2.1
n = 0, L, 2L, . . .
(6.8)
evateur de fr
El
equence d
echantillonnage
On definit par elevateur de frequence, le syst`eme decrit `a la figure 6.4 consistant en lajout
de L 1 zeros entre deux echantillons successifs de la sequence dentre x(n) defini par :
xe (n) =
x(n/L),
0,
n = 0, L, 2L, . . .
ailleurs
(6.9)
ou de mani`ere equivalente :
xe (n) =
k=
x(k) (n kL)
(6.10)
x(nT)
t
xe(nT')
t
evateur de frequence dun facteur L : ajout de L 1 zeros entre deux echanFigure 6.4 El
tillons
Loperation L peut etre etudiee dans le domaine frequentiel afin de comprendre sont utilite
dans le cadre de linterpolation. La TF de xe (n) sexprime :
jT
Xe (e
) =
xe (nT )ejnT
(6.11)
n=
n=0,L,2L,...
nT
L
ejnT
(6.12)
69
Xe (ejT ) =
=
x(kT )ejkLT
k=
(6.13)
x(kT )ejkT
k=
jT
= X(e
(6.14)
(6.15)
Lajout de zeros na donc aucun effet sur le spectre, si ce nest lecartement de lintervalle de
periodisation dun facteur L. Ceci est illustre `a la figure 6.5. On sapercoit alors quun filtrage
passe-bas ideal de gain L et de frequence de coupure F c = 1/2T permet de retrouver la forme
du spectre correspondant `
a xc (t) echantillonne `a T .
1/T
X(ej)
1/T'
Xe(ej)
/T
/T'
/T
/T
/T
/T'
Figure 6.5 Influence sur le spectre dun signal interpole par des zeros
6.2.2
Interpolation
Un interpolateur (voir figure 6.6) sera donc defini comme la succession dun elevateur de frequence L, suivi dun filtrage passe-bas ideal de gain L et de frequence de coupure F c = 1/2T
(ou c = /L).
x(nT)
xe(nT')
xi(nT')
Dautres syst`emes dinterpolation sont connus (interpolation lineaire ou par TFD) mais ne
seront pas detailles ici.
6.2.3
Multiplication de la fr
equence d
echantillonnage par un facteur rationnel
70
Syst`emes multi-cadences
encore T = T /R = T.M/L. Pour cela, il suffit deffectuer tout dabord une interpolation par
un facteur L, puis une decimation par un facteur M . Les deux filtres presents dans la
decimation (voir figure 6.3) et dans linterpolation (voir figure 6.6) peuvent alors reunis dans
un seul et meme filtre dont la frequence de coupure Fc dependra des valeurs relatives de L et
M selon :
1
soit R > 1 M < L F e > F e
Fc = 2T
,
1
Fc = 2T .
On peut egalement ecrire :
1
1
Fc = min
,
(6.16)
2T 2T
ou encore
(6.17)
,
c = min
L M
car le filtre passe-bas travaille `
a une frequence dechantillonnage L.F e (ou encore M.F e).
x(nT)
y(nT')
Chapitre 7
Arithm
etique virgule fixe
Alfred S. se rend aupr`es de la societe chaotique de banque afin deffectuer un
placement `
a long terme. Le banquier lui propose le placement suivant : Vous
faites un placement initial de e 1 euros (e = 2.718281459045 . . .). La premi`ere
annee on multiplie votre capital par 1 et on prel`eve 1e de frais. La deuxi`eme annee
on multiplie votre capital par 2 et on prel`eve 1e de frais. La n-i`eme annee on
multiplie votre capital par n et on prel`eve 1e de frais. Vous pouvez retirer largent
apr`es 25 ans. Interessant, nest-ce pas ? La banque realise une simulation sur son
calculateur et obtient au bout de 25 ans +4645987753e. Alfred signe logiquement le
contrat propose. Rentre chez lui, il verifie le calcul sur sa calculatrice de poche et
trouve 140.1012 e ! En realite un calcul symbolique donne un resultat denviron
4 centimes. Cette anecdote prouve quun calcul peut etre instable, meme pour un
petit nombre doperations (ici 25 et 25).
Lobjectif de ce chapitre est de traiter de larithmetique utilisee pour limplantation dapplications de traitement numerique du signal au sein de syst`emes embarques. Dans la premi`ere
partie, les caracteristiques de larithmetique virgule fixe sont presentees. Dans la seconde partie, le processus de codage des donnees en virgule fixe est detaille. Levaluation de la precision
dune specification virgule fixe est presentee dans la troisi`eme partie. Deux exemples sont
enti`erement traites afin dillustrer le processus de conversion en virgule fixe.
7.1
7.1.1
7.1.1.1
Pr
esentation de larithm
etique virgule fixe
Les diff
erents types de codage
Rappels sur le codage dun entier
Repr
esentation non sign
ee
Le codage dun nombre x dans une base B correspond `a la decomposition de ce nombre
suivant les puissances successives de la base :
x=
n1
X
i=0
ai B i ,
71
72
ai appartenant `
a lensemble des symboles avec 0 ai B 1.
x est ecrit dans la base B (la notation xB ) sous la forme
an1 an2 . . . a0 .
Les puissances de la base B sont appelees les poids et les ai les coefficients. an1 est le coefficient du poids fort et a0 est le coefficient du poids faible. En base 2, les poids sont couramment
appeles bit (Binary Digit).
Un entier positif non signe x est code en binaire sur b bits par la relation suivante :
x=
b1
X
bi 2i
(7.1)
i=0
Ce codage sur b bits, permet de coder tout les nombres compris entre 0 et 2b 1.
Repr
esentation sign
ee : signe valeur absolue (SVA)
Pour cette representation, la donnee x est composee dun bit de signe S et de b 1 bits
representant le module de x. La valeur de cette donnee est la suivante :
S
x = (1)
b2
X
bi 2i
(7.2)
i=0
73
Repr
esentation sign
ee en compl
ement `
a 2 (CA2)
Le complement `
a deux est le cas special du complement `a la base B. Pour les nombres positifs
le codage binaire pur est conserve. si A 0 et alors A est represente par an1 an2 . . . a0 avec :
A=
n1
X
ai 2i
i=0
Pour loppose de A un codage facilitant les operations arithmetiques est recherche. Soit
A , le nombre code par an1 an2 . . . a0 et correspondant au complement a
` 1 de A code
an1 an2 . . . a0 . Laddition de ces deux nombres permet dobtenir la valeur 2n 1 :
+
an1
an1
1
an2
an2
1
...
...
...
a0
a0
1
2n 1
En limitant le codage `
a n bits, la valeur est obtenue modulo 2n . Le bit n + 1 nest pas pris en
n
compte et donc 2 = 0.
A + A
=0
Ainsi le complement `
a 2, A , est choisi comme oppose de A puisque A + A = 0 sur n bits
n
(modulo 2 ).
La representation en code complement `a 2 de la donnee x est egale `a :
b1
x = 2
S+
b2
X
bi 2i
(7.3)
i=0
(7.4)
La representation en code complement `a 2 est tr`es utilisee car elle poss`ede des proprietes
arithmetiques tr`es interessantes pour laddition et la soustraction. Le resultat dune serie
dadditions sera correct meme si les resultats intermediaires sont en dehors du domaine de
definition du codage, il suffit que le resultat final appartienne au domaine de definition. De
plus limplantation dans les processeurs numeriques des operateurs traditionnels utilisant ce
code est plus simple car elle necessite un operateur unique daddition et de soustraction que
74
Les donnees en virgule fixe sont composees dune partie fractionnaire et dune partie enti`ere
pour lesquelles le nombre de bits alloues reste fige au cours du traitement. Lexposant associe
`a chaque donnee est implicite et fixe. La figure 7.1 represente une donnee en virgule fixe composee dun bit de signe et de b 1 bits repartis en m bits pour la partie enti`ere et n bits pour
la partie fractionnaire. Nous utilisons dans la suite du document la notation (b, m, n) pour
definir le format dune donnee. Nous trouvons aussi dans la litterature la notation Qm.n .
2m-1
2 2
2
2-n
S b b
b
b
b b
b
b
m
Partie entire
(m bits)
Partie fractionnaire
(n bits)
m1
X
bi 2i
(7.5)
i=n
(7.6)
75
Repr
esentation
cadrage
`
a gauche
cadrage
`
a droite
conditions
m=0
n=b1
n=0
m= b1
2(b1)
[1 + q; 1 q]
[2b1 + q; 2b1 q]
La dynamique dun code represente la difference entre la valeur minimale et maximale. Pour
la representation SVA, la dynamique est egale `a :
D = Xmax Xmin = 2.(2m 2n )
(7.7)
D
= 2n
Nc 1
(7.8)
Le niveau de dynamique correspond au rapport entre les valeurs absolues maximales et minimales representables par le code. Lexpression du niveau de dynamique exprime en dB, est
la suivante :
ND
dB
= 20 log
max(|x|)
min(|x|)
(7.9)
Repr
esentation en compl
ement `
a 2 (CA2)
La representation en code complement `a 2 de la donnee x en virgule fixe est egale `a :
x = 2m S +
m1
X
bi 2i
(7.10)
i=n
(7.11)
76
Repr
esentation
cadrage
`
a gauche
cadrage
`
a droite
cadrage
`
an
condition
m=0
n=0
n+m= b1
2(b1)
2(n)
[1; 1 q]
[2b1 ; 2b1 q]
[2m ; 2m q]
cadrage `
a gauche
Valeur
cadrage `
a droite
m=3 n=2
0.96875
0.9375
.
.
.
0.3125
0
0
-0.3125
.
.
.
-0.9375
-0.96875
-1
31
30
.
.
.
1
0
0
-1
.
.
.
-30
-31
-32
7.75
7.5
.
.
.
0.25
0
0
-0.25
.
.
.
-7.5
-7.75
-8
Repr
esentation
C.A.2
S.V.A.
011111
011110
.
.
.
000001
000000
111111
.
.
.
100010
100001
100000
011111
011110
.
.
.
000001
000000
100000
100001
.
.
.
111110
111111
...
Le codage des donnees en virgule flottante a ete normalisee par lIEEE. Dans cette partie, la
norme IEEE 754 est plus particuli`erement decrite. Pour cette norme, representee `a la figure
7.2, les donnees sont composees dun bit de signe S, dun exposant u et dune mantisse.
Lexposant u permet dobtenir un facteur dechelle explicite et variable au cours du traitement,
celui-ci est une puissance de 2. Ce facteur permet de sadapter `a la valeur `a representer. Afin
de ne coder que des nombres positifs, cet exposant sur E bits est code relativement `a la valeur
2E1 1. La mantisse represente la valeur de la donnee divisee par le facteur dechelle. Afin
deviter toute ambigute, le premier bit de la mantisse represente le coefficient 20 et est fixe
`a 1. La valeur de ce bit restant fixe au cours du traitement, celui-ci nest pas represente dans
le code. La mantisse est comprise dans lintervalle [1; 2[
La valeur de la donnee x est la suivante :
E1
M
1
X
X
di 2i 2E1 1
avec u =
Ci 2iM
x = (1)S .2u . 1 +
i=0
(7.12)
i=0
Dapr`es lequation 7.12 la valeur 0 nest pas representable. Les valeurs 00 . . . 00b et 11 . . . 11b
77
d c
c
Exposant
c
Mantisse
WL (bits)
M (bits)
E (bits)
simple pr
ecision (float)
32
23
double pr
ecision (double)
64
52
11
double pr
ecision
etendue (long double)
80
64
15
Table 7.5 Les differents types associes `a la norme IEEE 754. Les termes WL, M, et E
representent respectivement la largeur de la donnee, de la mantisse et de lexposant.
sont reservees pour coder des valeurs particuli`eres (0, ). Le domaine de definition est compose des deux sous-intervalles suivants :
avec
i
i[h
h
2Kmin ; 2Kmax .(2 2M )
DR = 2Kmax .(2 2M ); 2Kmin
Kmin = 2E1 + 2
Kmax = 2E1 1
(7.13)
(7.14)
(7.15)
Lexpression 7.16 determine les bornes minimales et maximales du pas de quantification relatif.
Nous pouvons considerer quil est pratiquement constant pour lensemble des valeurs de x.
2(M +1) <
q
< 2M
|x|
(7.16)
(7.17)
78
7.1.1.4
Niveau de dynamique
Le niveau de dynamique exprime en dB est represente ,`a la figure 7.3, en fonction du nombre
de bits utilises pour un codage en virgule fixe et en virgule flottante. Nous avons fixe pour le
codage en virgule flottante la taille de lexposant `a 1/4 de la longueur totale.
Lorsque le nombre de bits est inferieur `a 16, le niveau de dynamique obtenu avec une representation en virgule fixe est superieur `a celui dune representation en virgule flottante. Cette
tendance sinverse pour un nombre de bits superieur `a 16. Pour N=32, la representation en
virgule flottante montre tout son interet, la dynamique disponible permet dutiliser ce codage
dans la majorite des applications sans risque de debordements.
Dynamique virgule fixe/flottante
1500
Dynamique en dB
1000
500
10
15
20
Nombre de bits
25
30
7.1.2
D
efinition des r`
egles de larithm
etique virgule fixe
Nous considerons dans la suite de ce document que les donnees sont codees en virgule fixe
avec une representation en CA2.
7.1.2.1
Op
erations arithm
etiques
Op
erations arithm
etiques sur un bit Les operations arithmetiques entre 2 operandes
dun bit sont facilement realisables `
a base de portes logiques :
laddition est un OU EXCLUSIF, la retenue pour laddition un ET
la soustraction est un OU EXCLUSIF, la retenue un ET
la multiplication est un ET.
79
a3
+
a2
a1
a0
b3
b2
b1
b0
s3
s2
s1
s0
r4
r3
r2
r1
r0
a3
a2
a1
a0
b3
b2
b1
b0
d3
d2
d1
d0
r4
r3
r2
r1
r0
0000 1110
0000 1101
- 14
+13
1111 0010
0000 1101
-14
-13
1111 0010
1111 0011
+27
0001 1011
-1
1111 1111
-27
1110 0101
Les probl`emes de debordement sont plus difficiles `a detecter. On le voit quand le signe du
resultat est non conforme `
a lalg`ebre.
Laddition des nombres reels en virgule fixe est identique aux nombres entiers (absence de
notion de virgule dans les syst`emes numeriques)
80
7.1.3
Multiplication en binaire `
a base de d
ecalage
c7
b3 a 3
c6
b2 a3
b3 a2
c5
b1 a3
b2 a2
b3 a1
c4
a3
b3
b0 a 3
b1 a 2
b2 a 1
b3 a 0
c3
a2
b2
b0 a2
b1 a1
b2 a0
0
c2
a1
b1
b0 a1
b1 a0
0
0
c1
a0
b0
b0 a0
0
0
0
c0
c7
b3 a3
c6
b2 a3
b3 a2
c5
b1 a3
b2 a2
b3 a1
c4
a3
b3
b0 a3
b1 a2
b2 a1
b3 a0
c3
a2
b2
b0 a2
b1 a1
b2 a0
0
c2
a1
b1
b0 a1
b1 a0
0
0
c1
a0
b0
b0 a 0
0
0
0
c0
a3
b3
b0 a 3
b1 a 3
b2 a 3
b3 a 3
b3 a3
b3 a2
b3 a1
b3 a0
c7
a3
b3
b0 a 3
b1 a 3
b2 a 3
b3 a 3
b3 a2
b3 a1
b3 a0
0
c6
a3
b3
b0 a 3
b1 a 3
b2 a 3
b3 a 2
b3 a1
b3 a0
0
0
c5
a3
b3
b0 a 3
b1 a 3
b2 a 2
b3 a 1
b3 a0
0
0
0
c4
a3
b3
b0 a 3
b1 a 2
b2 a 1
b3 a 0
0
0
0
0
c3
a2
b2
b0 a 2
b1 a 1
b2 a 0
0
0
0
0
0
c2
a1
b1
b0 a1
b1 a0
0
0
0
0
0
0
c1
a0
b0
b0 a0
0
0
0
0
0
0
0
c0
7.1.3.1
81
doivent etre identiques pour les deux operandes. Si cette condition nest pas respectee il est
necessaire de modifier le format des operandes afin dobtenir un format identique (bc , mc , nc ).
Le format commun garantissant labsence de perte dinformation est le suivant :
mc = max(ma , mb )
nc = max(na , nb )
bc = m c + n c + 1
(7.18)
Pour les donnees ayant un format different du format commun, il est necessaire detendre le
nombre de bits des parties enti`eres et fractionnaires en suivant les r`egles suivantes :
partie fractionnaire : les (nc na ) bits supplementaires sont mis `a 0.
partie enti`ere : extension du bit de signe 1 . Dans le cas du complement `a 2 les
(mc ma ) nouveaux bits prennent la valeur du bit de signe.
Le format du resultat de laddition de deux operandes au format (bc , mc , nc ) est presente
a` lexpression 7.19. Nous obtenons un d
ebordement si le resultat de laddition des deux
operandes nappartient pas au domaine de definition Dc = [2mc ; 2mc [. Dans ce cas un bit
supplementaire est necessaire pour coder la partie enti`ere du resultat de laddition. Deux
exemples daddition sont presentes `
a la figure 7.7.
nAdd = nc
mc + 1
mAdd =
mc
"
"
"
"
(7.19)
si a + b 6 Dc
si a + b Dc
"
"
"
"
(7.20)
"
x (7.75)
x (7.75)
y (0.5)
y (-0.5)
z (8.25)
#$
z (7.25)
7.1.3.2
Multiplication
Pour une multiplication, les deux operandes doivent posseder la meme representation mais le
nombre de bits reserves pour chaque partie peut etre different. Neanmoins, il est necessaire
avant deffectuer loperation, detendre le bit de signe. La multiplication de deux nombres en
virgule fixe entrane le doublement du bit de signe, celui-ci peut etre elimine automatiquement
`a laide dun decalage `
a gauche. Pour un code en complement `a 2 nous pouvons considerer
que ce bit de signe redondant appartient `a la partie enti`ere. Le format du resultat de la
multiplication de deux operandes a et b est alors le suivant :
1. Lextension de signe dans le cas dune representation signe valeur absolue est plus complexe, il faut
decaler le bit de signe `
a la position bmc 1 et mettre `
a zero les bits bmc 2 `
a bma 1 .
82
mM ult = ma + mb + 1
nM ult = na + nb
bM ult = ba + bb
(7.21)
BCE
% % % % % %
& &
x (-0.5)
234567 8 9:;<;=>
% &
y (0.75)
234567 8 9:;<;=>
z (-0.375)
234567 8 9?;@;A>
. ..
...
% % % % & &
& & & & &
% % % & % &
& &
BCD
BCF
'() *+ ,(-.+
'() *+ ,(-.+ /+*0.*1.)
Domaine de definition : D =
Pas de quantification : q = 2n
m1
X
i=n
2n ]
bi 2i
7.2
83
valuation de
la dynamique
Contrainte
prcision
Dtermination de la
position de la virgule
valuation de
la prcision
Dtermination de la
largeur des donnes
Implantation
matrielle
logicielle
ASIC
FPGA
DSP
C
84
h(n )
N
1
X
i=0
avec
ci .(n i)
(7.22)
3.i
N
1
+
i [0;
1]
5 160
2
nous utilisons un filtre RIF symetrique, ainsi nous obtenons
(7.23)
ci =
N
; N 1]
2
Le graphe flot de signal de cette application est represente `a la figure 7.11.
ci = cN 1i
zzHIHI
x (n )
cJ
cK
i[
zzHIHI
cO N
zzHIHI
cM L
y (n )
(7.24)
7.2.1
85
D
etermination de la dynamique des donn
ees
Le but de cette premi`ere phase est de determiner le domaine de definition de certaines donnees
de lapplication afin den deduire la position de la virgule par rapport au bit le plus significatif.
Cette position est definie afin de garantir labsence de debordement.
Deux types dapproche peuvent etre utilises pour determiner la valeur absolue maximale dune
donnee. Pour la premi`ere approche, lestimation est effectuee `a partir des valeurs prises par la
donnee et obtenues par simulation de lalgorithme en virgule flottante. La seconde approche
utilise une methode analytique permettant de determiner lexpression de la dynamique dune
donnee `a partir de celle des entrees de lapplication.
7.2.1.1
M
ethode par simulation
Ce type dapproche permet destimer la dynamique dune donnee `a partir de ses caracteristiques determinees lors de la simulation de lalgorithme en virgule flottante. Cependant, ces
approches sont tr`es sensibles au choix des stimuli dentree. Elles garantissent uniquement une
absence de debordement pour des signaux dont les caracteristiques sont proches de celles des
stimuli dentree. Lestimation de la dynamique la plus simple consiste `a prendre la valeur
absolue maximale des echantillons obtenus lors de la simulation. Des methodes plus evoluees
proposent de determiner la dynamique dune donnee `a partir de ses caracteristiques statistiques.
7.2.1.2
M
ethodes analytiques
86
y (n )
max ( y ( n ) ) = 3.4
g
x (n )
y (n )
max ( y ( n ) ) = 2.4
g
x (n )
]^SQ_ `a bcdef
y (n )
max ( y ( n ) ) = 9.3
h
Figure 7.12 Representation des signaux en entree et en sortie du filtre pour trois types de
signaux dentree
Larithm
etique dintervalles Larithmetique dintervalles correspond `a une arithmetique
definie sur un ensemble dintervalles au lieu dun ensemble de nombre reels. Un intervalle
est assimile au domaine de definition dune variable x et est caracterise par sa valeur limite
a la valeur minimale de x et sa valeur limite superieure x corresinferieure x correspondant `
pondant `a la valeur maximale de x.
Larithmetique dintervalles definit le domaine de definition des donnees issues des operations
arithmetiques classiques. Considerons la donnee z issue dune operation arithmetique dont
les entrees sont les deux variables x et y. Le domaine de definition de la donnee z pour les
differents operateurs arithmetiques est le suivant :
z =x+y
z =xy
z =xy
[z, z] = [x + y, x + y]
[z, z] = [x y, x y]
[z, z] = [min(xy, xy, xy, xy), max(xy, xy, xy, xy)]
(7.25)
Considerons un syst`eme compose de Ne entrees xi (n). Soit y(n) une donnee quelconque de ce
syst`eme et definie en fonction des entrees de la mani`ere suivante :
y(n) = f (x0 (n), x1 (n), . . . xi (n), . . . xNe 1 (n))
(7.26)
87
Le domaine de definition de la donnee y peut etre obtenu `a partir de celui des entrees en
appliquant `
a la fonction f , les differentes r`egles presentees `a lequation 7.25 :
[y, y] = f [x0 , x0 ], . . . [xi , xi ], . . . [xNe 1 , xNe 1 ]
(7.27)
Cette technique permet de definir le domaine de definition dune donnee qui est fonction
uniquement des entrees du syst`eme. En effet, dans le cas des syst`emes recursifs, certaines
donnees y(n) sont fonction des valeurs precedentes y(n i) de ces donnees. Le domaine de
definition de la donnee y etant fonction de son propre domaine de definition, larithmetique
dintervalles ne permet pas de determiner directement le domaine de definition de ce type de
donnee. Ainsi, cette technique ne peut etre mise en uvre de mani`ere simple que pour les
syst`emes non-recursifs.
Pour determiner la dynamique des donnees dun syst`eme non-recursif, le graphe flot de signal
representant le syst`eme est parcouru des sources (entrees) vers les racines (sorties) et les r`egles
definies `a la relation 7.25 sont appliquees `a chaque operateur. Dans les syst`emes recursifs, le
graphe flot de signal poss`ede des circuits, ainsi, le processus de parcours du graphe des entrees
vers la sortie ne peut pas se terminer.
x (n )
] 1,1[
cn
] ct , ct [
zzlmlm
co
N
1
X
m=0
zzlmlm
cs r
(7.28)
zzlmlm
] cw v , cw v [
] cu , cu[
|cm | = 10.75
cq p
N 1 N 1
ci , ci
i =0
i =0
] cy x , cy x[
y (n )
88
(7.29)
Pour le syst`eme multi-entrees, considerons un syst`eme lineaire invariant dans le temps compose de Ne entrees xi . Soit y, la sortie de ce syst`eme definie de la mani`ere suivante :
y(n) =
NX
e 1
i=0
hi (n) xi (n)
(7.30)
(7.31)
m=
Sachant que la valeur absolue dune somme de termes est inferieure `a la somme des valeurs
absolues de ces termes et que lentree est bornee par sa valeur absolue maximale lexpression
7.31 peut etre bornee. Ainsi, la relation entre la valeur absolue maximale dune donnee y et
celle de lentree x du syst`eme est la suivante :
ymax = max (|y(n)|) max (|x(n)|)
n
+
X
m=
|h(m)|
(7.32)
Aucune hypoth`ese concernant la nature du signal en entree ayant ete faite pour obtenir lexpression de ymax , la relation 7.32 permet de borner la valeur absolue maximale de la donnee
y pour tous types de signaux au niveau de lentree.
Lextension de la norme L1 pour un syst`eme lineaire `a plusieurs entrees conduit avec la meme
demarche `
a la relation suivante :
ymax = max (|y(n)|)
n
NX
e 1
i=0
+
X
m=
|hi (m)|
(7.33)
+
X
m=
|h(m)|
(7.34)
89
N
1
X
m=0
|cm | = 10.75
(7.35)
avec 0 <
(7.36)
Dapr`es les relations 7.29 et 7.36, lexpression de la valeur absolue de y est egale `a :
|y(n)| = A|.|H(ej )|.| cos .n + arg H(ej )
avec 0 <
(7.37)
Lexpression 7.37 peut etre bornee en utilisant la valeur maximale du module de la reponse
frequentielle de H. Ainsi, pour la norme de Chebyshev, la relation entre la valeur absolue
maximale dune donnee y et celle de lentree du syst`eme est la suivante :
ymax = max (|y(n)|) max (|x(n)|) max |H(ej )|
n
(7.38)
NX
e 1
i=0
max (|xi (n)|) max |Hi (ej )|
n
(7.39)
Cette norme permet dobtenir des resultats moins pessimistes que la norme L1, mais elle
impose des conditions sur la nature du signal dentree du filtre dun point de vue spectral.
Exemple filtre RIF
Lexpression de la dynamique de la sortie y, obtenue avec la norme de Chebyshev, est la
suivante :
ymax = max (|x(n)|) max |H(ej )|
n
(7.40)
Le module de la reponse frequentielle du filtre H(ej ) est presente `a la figure 7.14. Le maximum de cette fonction est obtenu pour une frequence nulle. Ainsi, lexpression de la dynamique de la sortie y est la suivante :
90
ymax
1
NX
= H(ej0 ) =
cm z m
m=0
= 10.75
(7.41)
z=1
Nous obtenons les memes resultats que pour la norme L1, car nous sommes dans le cas
particulier ou les differents elements de la reponse impulsionnelle du filtre RIF sont tous
positifs.
Rponse frquentielle
H (e z )
Structure cascad
ee Pour illustrer les concepts detailles dans cette partie, considerons le
syst`eme presente `
a la figure 7.15. Le syst`eme global H est realise en cascadant trois soussyst`emes H1 , H2 et H3 :
H(z) = H1 (z) H2 (z) H3 (z)
(7.42)
91
H ( z ). H ( z ). H ~ ( z )
H } ( z ).H | ( z )
H{ ( z )
x(n)
H1(z)
y(n)
y(n)
H2(z)
H3(z)
y(n)
y2max = max (|x(n)|) max |H12 (ej )| = max |H1 .H2 (ej )| = 0, 356
n
(7.43)
( )
( )
( )
( )
(7.44)
y2max = max (|x(n)|) max |H1 (ej )| max |H2 (ej )| = 1 1 = 1
(7.45)
Cet exemple montre que la seconde evaluation de la dynamique de la sortie y surestime celleci, car les maximums des reponses frequentielles des deux cellules cascadees sont obtenus pour
92
des pulsations differentes. Ainsi, il est necessaire de toujours considerer la fonction de transfert
globale entre la donnee consideree et lentree du syst`eme.
Evaluation de la dynamique
Methodes basees sur la simulation
Determination des valeurs maximales `a partir de simulations en virgule
flottante.
Estimation precise mais elle ne garantit pas labsence de debordement.
Methodes analytiques
Methodes pessimistes mais garantissant labsence de debordement.
Arithm
etique dintervalle
Propagation de lintervalle de definition des entrees du syst`eme au sein
du graphe (acyclique) de lapplication
R`egles de propagation pour les operateurs arithmetiques :
z =x+y
z =xy
z =xy
[z, z] = [x + y, x + y]
[z, z] = [x y, x y]
[z, z] = [min(xy, xy, xy, xy), max(xy, xy, xy, xy)]
+
X
m=
|h(m)|
Norme de Chebyshev :
ymax = max (|y(n)|) max (|x(n)|) max |H(ej )|
n
Structure cascadee : il est necessaire de ne realiser quune seule majoration en determinant la dynamique dune sortie yi directement en
fonction de lentree x du syst`eme global.
7.2.2
D
etermination de la position de la virgule
Lobjectif de cette phase est de determiner la position de la virgule de chaque donnee du graphe
flot de signal afin daboutir `
a une specification correcte dun point de vue de larithmetique
virgule fixe. Cette transformation doit garantir labsence de debordement et respecter les
r`egles de larithmetique virgule fixe. La position de la virgule dune donnee specifiee `a travers
son param`etre m doit permettre de representer lensemble des valeurs prises par cette donnee
et deviter la presence de bits non utilises au sein de celle-ci afin de maintenir une precision
93
maximale. Ces deux contraintes permettent dobtenir pour une donnee x linegalite suivante :
2mx 1 xmax < 2mx
(7.46)
7.2.2.1
(7.47)
R`
egles associ
ees aux op
erateurs arithm
etiques
(7.48)
Additionneur sans bit de garde Pour les operations daddition ou de soustraction, il est
necessaire de definir une position de la virgule commune aux entrees afin daligner la position
de leur virgule. La position de la virgule de la sortie correspond `a la position commune au
niveau des entrees. Cette position commune doit garantir labsence de debordement, ainsi
elle est definie `
a partir de la contrainte la plus forte au niveau des entrees. Si loperateur ne
poss`ede pas de bit de garde permettant daccueillir le bit supplementaire issu dun eventuel
debordement il est necessaire dintegrer cette contrainte dans la determination du format
commun. Ainsi, pour un additionneur ne possedant pas de bit de garde, la position de la
virgule commune est definie de la mani`ere suivante :
mc = max (mx , my , mz )
(7.49)
(7.50)
94
Additionneur avec bits de garde Pour les additionneurs possedant des bits de garde,
les largeurs des operandes dentree et de sortie sont differentes et les bits les plus significatifs
de ces donnees ne sont plus alignes. Ainsi, les positions des virgules entre les donnees ne sont
plus coherentes et un referentiel commun doit etre utilise pour analyser les contraintes au
niveau des entrees et de la sortie.
mx = mx gx
m = my gy
(7.51)
y
mz = mz gz
Une position de la virgule commune aux entrees et `a la sortie de ladditionneur dans le referentiel commun est definie. Cette position est determinee `a partir de la contrainte maximale
sur les entrees et la sortie. Cependant, le calcul de la contrainte sur la sortie necessite de
connatre le nombre de bits de garde utilises au niveau de la sortie. Cette valeur netant pas
connue avant de determiner le format commun, celle-ci est fixee `a sa valeur maximale Bg , correspondant au nombre de bits de garde disponibles au niveau de ladditionneur. La position
de la virgule commune est definie `
a partir de la relation suivante :
mc = max mx , my , mz = max (mx gx , my gy , mz Bg )
(7.52)
Le nombre de bits de garde reellement utilises par la sortie de ladditionneur est egal `a :
gz = mz mc si mz > mc
(7.53)
gz = 0
si mz mc
95
mx = mc + gx
my = mc + gy
(7.54)
(7.55)
Si gz est egal `
a 0, alors aucun bit de garde nest utilise et dans ce cas la position de la virgule
de la sortie correspond `
a celle du format commun. Sinon, la position de la virgule de la sortie
est obtenue `
a partir de la dynamique du resultat de loperation. Si la contrainte la plus forte
au niveau de la relation 7.78 correspond `a celle sur la sortie alors, lensemble des bits de
garde sont utilises pour coder la sortie et la valeur de gz est egale au nombre de bits de garde
disponibles au niveau de ladditionneur.
Le renvoi en memoire du resultat de laddition necessite de repositionner la donnee dans le
registre daccumulation car les bits de garde ne peuvent pas etre envoyes directement en memoire. Ainsi, il est necessaire de faire un decalage `a droite de gz bits.
La relation 7.78 peut etre utilisee pour determiner la position de la virgule commune dans le
cas des additionneurs avec et sans bits de garde. Si ladditionneur ne poss`ede pas de bit de
garde, les param`etres g et Bg sont nuls et nous retrouvons les resultats obtenus `a lequation
7.75.
zz
x(n i )
m
m
y (n )
Figure 7.18 Graphe flot de signal representant une cellule du filtre RIF
Lobjectif de cette phase est de determiner la position de la virgule des differentes donnees `
a
partir des informations obtenues dans la phase precedente de determination de la dynamique.
96
Sachant que les dynamiques des donnees x et y sont respectivement egales `a 0.999 et 10.75,
alors la position de la virgule de ces donnees est la suivante :
mx = log2 (maxn (|x(n)|)) + 1 = log2 (0.999) + 1 = 0
(7.56)
(7.58)
Pour ladditionneur, il est necessaire de trouver un format commun afin daligner la virgule
des entrees de laddition. La sortie y du filtre est obtenue `a partir de la variable ACC `a la
fin de la suite daccumulations. Le format de la variable ACC est identique pour toutes les
accumulations. Ainsi, la dynamique de la variable ACC est egale `a celle de y. En consequence,
la position de la virgule de la variable ACC correspond `a celle de y.
Additionneur sans bit de garde Dans le cas o`
u larchitecture ne poss`ede pas dadditionneur avec des bits de garde, le format commun associe `a laddition est obtenu `a partir de
lexpression 7.75 :
mADD = max (mM U LT , mACC , mACC ) = max (0, 4, 4)
(7.59)
(7.60)
Lobjectif de ce decalage est dajouter des bits `a la partie enti`ere de la donnee issue de la
multiplication afin daligner la virgule. Cet ajout de bits est obtenu en realisant un decalage
arithmetique `
a droite (les nouveaux bits de poids fort sont une copie du bit de signe)
Additionneur avec bits de garde Dans le cas o`
u larchitecture poss`ede un additionneur
avec la possibilite dutiliser 8 bits de garde, le format commun associe `a laddition est obtenu
`a partir de lexpression :
mADD = max (mM U LT gM U LT ; mACC Bg ; mACC Bg )
= max (0 0; 4 8; 4 8) = 0
(7.61)
(7.62)
zz
m = 1
97
m = 0
>> 4
m = 0
m = 4
y (n )
Figure 7.19 Calcul en virgule fixe avec un additionneur sans bit de garde
Le nombre de bits de garde reellement utilises par la sortie de ladditionneur est egal `a :
zz
x(n i )
m = 1
m = 0
m = 0
m = 4
(7.63)
y (n )
>> 4
Figure 7.20 Calcul en virgule fixe avec un additionneur possedant 8 bits de garde
98
D
etermination de la position de la virgule
Position de la virgule dune donnee x `a partir de sa dynamique
j
k
mx = log2 max (|x(n)|) + 1
n
(7.73)
(7.74)
(7.75)
mx = mx gx
m = my gy
y
mz = mz gz
(7.76)
(7.77)
(7.80)
(7.81)
7.2.3
99
D
etermination de la largeur des donn
ees
Pour obtenir le format complet de chaque donnee (largeur de la partie enti`ere et de la partie
fractionnaire), la largeur des donnees doit etre determinee.
7.2.3.1
Implantation logicielle
Dans le cas dune implantation logicielle de lapplication au sein dun processeur (DSP, C),
la largeur des donnees depend des types manipules par le processeur. Ces types sont lies aux
differentes instructions disponibles au sein du jeu dinstructions :
Instructions arithm
etiques classiques : elles realisent le traitement dune seule
operation sur un operateur en un ou plusieurs cycles dhorloge. Ces instructions manipulent des operandes de largeur bop .
Instructions multi-pr
ecision : elles permettent de manipuler des donnees de largeur plus importante, obtenues par concatenation de plusieurs donnees de largeur bop .
Une operation utilisant des donnees en multi-precision est decomposee en une suite
doperations manipulant des operandes de largeur bop .
Instructions SWP (Sub-Word Parallelism) : elles permettent de traiter en parall`ele des operandes dont la largeur est inferieure `a la largeur bop . Cette technique
divise un operateur manipulant des donnees de largeur bop afin de pouvoir executer en
parall`ele k operations sur des fractions de mot de largeur bop /k (voir cours EII3)
Pour les processeurs DSP bases sur une architecture traditionnelle de type MAC, les operateurs ne manipulent quun seul type de donnee. Ainsi le processus de determination de la
largeur des donnees est simplifie. Il consiste `a reporter les largeurs des operateurs en entree
et en sortie des operations du graphe flot de lapplication.
Certains processeurs DSP plus recents permettent de manipuler differents types de donnees
(instructions classiques, multi-precision, SWP) il est necessaire de selectionner le type dinstructions permettant de minimiser le temps dexecution du code et de respecter les contraintes
de precision des calculs.
Exemple filtre RIF
Pour le filtre RIF traite en exemple, nous considerons dans un premier temps un DSP base
sur une architecture traditionnelle double precision de type MAC possedant 8 bits de garde.
Le synoptique de la partie operative est presente `a la figure 7.21.a. En reportant la largeur
des operateurs aux operations du graphe flot de signal, nous obtenons le graphe presente `a la
figure 7.22.
Nous considerons dans un second temps un DSP base sur une architecture traditionnelle
double precision de type MAC sans bit de garde. Le synoptique de la partie operative est
presente `a la figure 7.21.b. En reportant la largeur des operateurs aux operations du graphe
flot de signal, nous obtenons le graphe presente `a la figure 7.23.
100
AA
BB
AA
BB
AA
BB
+
Accumulateur
Accumulateur
Accumulateur
Accumulateur
Accumulateur
Accumulateur
(16,0,15)
x (n )
zz
zz
(16,-1,16)
c
zz
(32,0,31)
(36,4,31)
(16,4,11)
Q
y (n )
(36,4,31)
Figure 7.22 Graphe flot de signal annote avec le format complet des donnees pour une
architecture double precision possedant 8 bits de garde.
Nous considerons dans un troisi`eme temps une architecture simple precision dont le synoptique
de la partie operative est presente `
a la figure 7.21.c. En reportant la largeur des operateurs
aux operations du graphe flot de signal, nous obtenons le graphe presente `a la figure 7.24.
Le type virgule fixe nexistant pas en C, nous devons utiliser les types entiers. Ainsi, pour les
coefficients il est necessaire de coder la valeur enti`ere ayant la meme representation binaire
que la valeur en virgule fixe. Ceci revient `a faire un decalage `a droite de la virgule du nombre
de bits utilises pour la partie fractionnaire :
(16,0,15)
"# $%&'
zz
"# $%&'
101
zz
(16,-1,16)
c
c
!
zz
c
(32,0,31)
() $%&'
**
**
**
**
**
**
**
**
(32,4,27)
() $%&'
(16,4,11)
() $%&'
Q
"# $%&'
y (n )
(32,4,27)
Figure 7.23 Graphe flot de signal annote avec le format complet des donnees pour une
architecture double precision sans bit de garde.
x (n )
(16,0,15)
+,
+,
c
-
34 5678
+,
+,
zz
34 5678
(16,-1,16)
c
.
c
2
zz
c
0
(16,0,15)
34 5678
99
99
+,
+,
zz
99
99
99
99
99
99
(16,4,11)
34 56 78
(16,4,11)
34 5678
y (n )
Figure 7.24 Graphe flot de signal annote avec le format complet des donnees pour une
architecture simple precision
Cint = Cf ixed
point
2nc
(7.82)
102
}
y[j] = (int)(acc>>16);
Lexpression (long)( ... ) a pour objectif de forcer le compilateur `a conserver les 32 bits
du resultat et ne pas tronquer `
a 16 bits avant de faire laddition.
16; a pour objectif de renvoyer en memoire les bits les plus
Lexpression y = (int) ( )
significatifs du resultat (partie haute de laccumulateur). Pour cela il est necessaire de transferer les bits de la partie haute de laccumulateur vers la partie basse de laccumulateur. En
effet, le compilateur travaille sur des entiers et lors dun passage de 32 `a 16 bits, il ne conserve
que les bits les moins significatifs.
7.2.3.2
Implantation mat
erielle
Dans le cas dune implantation materielle de lapplication au sein dun FPGA ou dun ASIC,
larchitecture du syst`eme est definie par le concepteur. Ainsi, la largeur des operateurs constituant larchitecture est determinee lors du processus de conception. Lobjectif de ce processus
de conception est de limiter la surface de larchitecture afin de reduire les co
uts et la consommation denergie. En consequence, la largeur des operateurs est minimisee tant que la precision
des calculs realises est suffisante pour que les crit`eres de qualite associes `a lapplication soient
respectes.
Si le crit`ere de qualite utilise est le Rapport Signal `a Bruit de Quantification (RSBQ), alors
le processus de determination de la largeur des donnees peut etre modelise par le probl`eme
doptimisation suivant :
min S( b )
avec RSBQ( b ) RSBQmin
(7.83)
Le vecteur b represente la largeur de lensemble des donnees presentes au sein de lapplication. Le terme S represente la surface de larchitecture et est fonction de la largeur des donnees.
103
}z~w
(b
yz{|
,b
wxx
QRST
(b
MNOP
,b
KLL
Solution : (12,17)
[
v
u
t
s
Y
W
Z
Y
r
q
p
o
n
:;<=
>?@
AB CD
bh`gi^f` ba jakilekl`a^
bh`gi^f` ba jakilekl`a^
GHIJ
EFF
b` kh]bblildgg`a^
GHIJ
EFF
b` kh]bblildgg`a^
7.3
7.3.1
Evaluation de la pr
ecision
Processus de quantification et de d
epassement
Soit x une valeur arbitraire appartenant au domaine D et y une valeur du domaine de definition DR du codage choisi. Le domaine DR est borne par les valeurs Xmin et Xmax . Nous
definissons le sous-ensemble DD de D regroupant lensemble des valeurs de D comprises dans
lintervalle [Xmin ; Xmax ]. Le processus de quantification correspond `a loperation de reduction dune valeur arbitraire x `
a une valeur representable y. Ce processus est regi par deux lois
presentees ci-dessous :
Loi de depassement : cette loi permet dassocier `a lensemble des valeurs x de D une valeur x
appartenant au domaine DD . Elle definit plus precisement le comportement pour les valeurs
presentes en dehors du domaine DD . Nous associons `a cette loi une fonction de depassement
definie ci-dessous :
x
x DD
fD (x) =
(7.84)
D(x) x 6 DD
Loi de quantification : cette loi definit les valeurs representables y `a associer `a lensemble des
valeurs x appartenant au domaine DD . La fonction de quantification associee est la suivante :
fQ (x) = Q(x) x DD
Le processus de quantification global peut sexprimer sous la forme suivante :
Q(x) x DD
x fQ (fD (x)) =
D(x) x 6 DD
7.3.1.1
Lois de d
epassement
Arithm
etique de saturation
(7.85)
(7.86)
104
Cette loi appelee loi de saturation, consiste `a choisir la valeur du domaine DD la plus proche
de la valeur `
a representer x :
D(x) =
(7.87)
Xmax
Xmax
fD(x)
Xmin
Xmin
Xmax
Xmax
Xmin
Xmin
(a)
(b)
7.3.1.2
Lois de quantification
Le domaine representable DR est compose de N valeurs yi avec i = 1, 2, . . . , N et le sousdomaine DD est subdivise en N sous domaines juxtaposes i . La loi de quantification associe
`a tout x appartenant au domaine i la valeur yi :
x i
Q(x) = yi
(7.88)
(7.89)
ui+1 ui
2
= ui +
q
2
x i = [ui ; ui+1 ]
(7.90)
105
fQ(x)
q
2
ui xi ui+1
-q
2
e(x)
xi
ui ui+1
fQ(x)
e(x)
q
ui ui+1
ui ui+1
x
-q
Figure 7.28 Caracteristiques de la loi de quantification par troncature pour le codage SVA
Representation signe valeur absolue
Pour cette representation la troncature dun certain nombre de bits de poids faible revient
`a choisir la valeur representable la plus proche dont le module est inferieur `a la valeur `
a
quantifier (voir figure 7.28) :
ui x > 0
yi =
(7.91)
ui+1 x <
Representation en complement `
a2
La quantification par troncature dans le cas dune representation en complement `a 2 (voir
figure 7.29) revient `
a prendre la valeur representable immediatement inferieure `a la valeur `
a
quantifier yi = ui .
7.3.2
7.3.2.1
Mod
elisation du bruit
Bruit g
en
er
e par une conversion analogique-num
erique
La conversion analogique numerique (CAN) consiste `a passer dun signal echantillonne damplitude continue x(n) vers une suite de nombre y(n) dont les valeurs appartiennent `a un
106
ui ui+1
ui ui+1
Figure 7.29 Caracteristiques de la loi de quantification par troncature pour le codage CA2
intervalle de valeur (dynamique) et sont quantifiees (amplitude discr`ete). Ces valeurs sont un
multiple entier du pas de quantification q (voir figure 7.30) :
y(n) = Q[x(n)] = k.q
(7.92)
Dans ce cadre, les mod`eles et lois de quantification presentes dans les sections precedentes
peuvent etre utilises.
x(n)
y(n)
3q
2q
q
3q
2q
q
n
e(n)
x(n)
q/2
y (n)
CAN
- q/2
Q( )
-e
107
cette variable aleatoire e est representee `a la figure 7.32 pour le cas dune quantification par
troncature et par arrondi
p (e)
p (e )
Figure 7.32 Densite de probabilite du bruit genere lors de la quantification par troncature
et par arrondi
La variable aleatoire e(n) poss`ede les proprietes suivantes :
e(n) est stationnaire,
le bruit issu de la quantification dun signal x(n) nest pas correle avec ce signal,
les bruits de quantification sont statistiquement independants,
e(n) est un bruit blanc uniformement reparti,
e(n) est bornee par le pas de quantification,
la densite de probabilite de e(n) est uniforme sur lintervalle de quantification,
lergodicite implique que les moyennes temporelles et statistiques sont equivalentes.
Pour une loi de quantification par arrondi, la moyenne et la variance de lerreur de quantification sont les suivantes :
e2 =
e = 0,
q2
12
(7.93)
Pour une loi de quantification par troncature, la moyenne et la variance de lerreur de quantification sont les suivantes :
q
e = ,
2
7.3.2.2
e2 =
q2
12
(7.94)
Bruit g
en
er
e par un changement de format
Mod
elisation du bruit g
en
er
e par la troncature
Lobjectif de cette partie est de modeliser le bruit issu dun changement de format entranant
lelimination dun certain nombre de bits de poids faible. Ce bruit correspond `a la modelisation
de la perte dinformation resultant de lelimination des k bits les moins significatifs lors dun
changement de format. Nous considerons une donnee de depart Xe et la donnee Xs apr`es
changement de format. La representation de ces donnees codees en complement `a 2, est
presente `a la figure 7.33 et les expressions de celles-ci sont les suivantes :
m
Xe = 2 .S +
m1
X
n
bi 2i
(7.95)
108
m1
X
bi 2i
(7.96)
Bits restants
2m-1
S b
2-j 2-j-1
2-n
b
k
n
Lexpression 7.97 montre que le bruit genere sera toujours positif. En effet lors dune troncature en complement `
a 2 la valeur tronquee est toujours inferieure `a la valeur de depart.
Le bruit issu de la troncature ne pouvant prendre quun nombre fini de valeurs, egal `a 2k ,
nous pouvons modeliser le bruit genere par une variable aleatoire discr`ete.
Nous supposons que les valeurs binaires des bits bj1 `a bn sont equiprobables, ainsi les valeurs representant e sont equiprobables. Nous pouvons considerer que la densite de probabilite
p(e) representee `
a la figure 7.34, est uniforme. Son expression est la suivante :
p(e) =
k 1
2X
i=0
2k (e i.2n )
(7.98)
p (e)
e.2
+
X
i=
yi p(yi ) =
k 1
2X
i=0
i.2n .2k
(7.99)
109
soit
q
e = 2j1 (1 2jn ) = (1 2k )
2
La variance de cette variable aleatoire est egale `a :
e2 =
+
X
i=
(7.100)
yi2 p(yi ) 2e
(7.101)
soit
q2
22j
(1 22(jn) ) =
(1 22k )
(7.102)
12
12
Lorsque le nombre de bits tronques est important les resultats tendent vers ceux obtenus dans
le cas de la quantification dun signal `a amplitude continue :
e2 =
e = 2j1 =
e2 =
q
2
(7.103)
q2
1 2j
(2 ) =
12
12
(7.104)
Mod
elisation du bruit g
en
er
e par larrondi
Dans le cas dune quantification par arrondi conventionnel, la donnee correspondant `a la valeur
mediane de lintervalle [kq, (k + 1)q] est codee `a la valeur (k + 1)q. La loi de quantification est
definie de la facon suivante :
si kq x < (k + 21 )q
k.q
(7.105)
Q(x) =
(k + 1).q
si (k + 12 )q < x (k + 1)q
1
(k + 1)q
si x = (k + 2 )q
2k1
X1
i=2k1
2kn (e i.2n )
(7.106)
p (e )
e.2
Figure 7.35 Densite de probabilite du bruit genere lors dun arrondi conventionnel
110
2k1
X1
i=2k1
q k
(2 )
2
(7.107)
2k1
X1
i=2k1
(i.2n )2 .2k 2e =
22j
q2
(1 22k ) = (1 22k )
12
12
(7.108)
Afin deliminer le biais, un arrondi convergent peut etre utilise, celui-ci va affecter la valeur
mediane de facon equiprobable `
a la valeur superieure et inferieure :
si k.q x < (k + 12 )q
k.q
(k + 1).q
si (k + 21 )q < x (k + 1)q
(7.109)
Q(x) =
1
k.q ou (k + 1).q
si x = (k + 2 )q
1
1
avec P Q(x) = kq \ x = (k + )q = P Q(x) = (k + 1)q \ x = (k + )q
2
2
Cette technique garantit lequiprobabilite du codage de la valeur mediane en analysant la
parite de la donnee. Les donnees impaires sont codees `a la valeur superieure et les donnees
paires `a la valeur inferieure. La densite de probabilite associee `a lerreur de quantification
presentee `
a la figure 7.36, est egale `
a:
2k
(e + 2kn1 ) + (e 2kn1 ) +
p(e) =
2
2k1
X1
i=2k1 +1
2k (e i.2n )
(7.110)
p (e )
e.2
Figure 7.36 Densite de probabilite du bruit genere lors dun arrondi convergent
La moyenne de cette variable aleatoire est la suivante :
k
e = 2
2kn1 2kn1 +
2k1
X1
i.2n .2k = 0
(7.111)
i=2k1 +1
Ce type darrondi permet dobtenir une moyenne de lerreur de quantification nulle. Lexpression de la variance de lerreur de quantification est la suivante :
e2
111
k 2(kn1)
=2
2k1
X1
(i.2n )2 .2k
(7.112)
i=2k1 +1
soit
e2 =
7.3.3
q2
22j
(1 22k+1 ) = (1 22k+1 )
12
12
(7.113)
Filtrage du bruit
(7.114)
La variable aleatoire e(n), correspondant au bruit de quantification, est un bruit blanc, ainsi,
la moyenne f et la variance f2 du bruit en sortie f (n) sont :
f
f2
= e
=
e2
+
X
h(n) = e H(ej0 )
n=
+
X
2
|h(n)| = e
2
n=
2
(7.115)
|H(ej )|2 d
(7.116)
(7.117)
(7.118)
112
x (n )
(n)
zz
zz
(n)
zz
(n)
(n)
(n )
y (n )
b2ge =
22.nx
230
qx2
=
=
101.1 dB
12
12
12
(7.119)
bgbadd : bruit present en sortie du filtre et lie `a lelimination de 20 bits lors du renvoi
de la donnee en memoire sur 16 bits
b2gadd =
qy2
22.ny
222
(1 22.ky ) =
(1 22.ky ) =
(1 240 ) 77 dB
12
12
12
(7.120)
Le bruit lie au renvoi de la donnee en memoire (bgadd ) est directement present en sortie du
filtre. Le bruit en entree bge traverse le filtre h(n). Ainsi, lexpression du bruit en sortie du
filtre est la suivante :
by (n) = bgadd (n) + bge (n) h(n)
(7.121)
Si nous considerons quune loi de quantification par arrondi est utilisee pour chaque changement de format, alors la moyenne du bruit associe `a chaque source est nulle. La moyenne du
bruit en sortie est nulle.
Les differentes sources de bruit ne sont pas correlees entre elles et le bruit en entree est un
bruit blanc. En utilisant lexpression 7.143 pour le bruit bge la variance du bruit en sortie du
filtre est la suivante :
b2y = b2gadd + b2ge
N
1
X
i=0
b2y =
|ci |2
222 230
+
3.95 77 dB
12
12
(7.122)
(7.123)
113
Architecture double pr
ecision sans bit de garde
Dans le cas dune architecture double precision sans bit de garde nous obtenons la specification virgule fixe presente `
a la figure 7.23. Les differentes sources de bruit presentes au sein de
ce filtre sont les suivantes :
bge : bruit associe `
a lentree. Nous considerons que le signal x est issu dun convertisseur
analogique-numerique. La puissance de ce bruit est la suivante :
22.nx
230
qx2
=
=
101.1 dB
(7.124)
12
12
12
bgm.i : bruit present en sortie du multiplieur i lie au decalage `a droite avant laddition. La presence dun decalage `a droite avant laccumulation conduit `a une donnee
possedant 27 bits pour la partie fractionnaire. Sachant que 4 bits ont ete elimines, la
puissance de ce bruit est la suivante :
b2ge =
2
qM
22.nM U LT
254
U LT
(1 22.km ) =
(1 22.km ) =
(1 28 ) 173.6 dB
12
12
12
(7.125)
bgbadd : bruit present en sortie du filtre et lie `a lelimination de 16 bits lors du renvoi
de la donnee en memoire sur 16 bits
b2gm.i =
b2gadd =
qy2
22.ny
222
(1 22.ky ) =
(1 22.ky ) =
(1 232 ) 77 dB
12
12
12
(7.126)
Dans cette etude nous prenons en compte les differentes sources de bruit, mais letude peut
etre simplifiee en negligeant les bruits issus du recadrage avant laccumulation car leur contribution est insignifiante.
Les bruits issus du recadrage (bgm.i ) et lies au renvoi de la donnee en memoire (bgadd ) sont
directement presents en sortie du filtre. Le bruit en entree bge traverse le filtre h. Ainsi,
lexpression du bruit en sortie du filtre est la suivante :
by (n) = bgadd (n) +
N
1
X
i=0
(7.127)
Si nous considerons quune loi de quantification par arrondi est utilisee pour chaque changement de format, alors la moyenne du bruit associe `a chaque source est nulle. La moyenne du
bruit en sortie est nulle.
Les differentes sources de bruit ne sont pas correlees entre elles et le bruit en entree est un
bruit blanc. En utilisant lexpression 7.143 pour le bruit bge la variance du bruit en sortie du
filtre est la suivante :
b2y
b2gadd
N
1
X
i=0
b2gm.i
b2ge
N
1
X
i=0
|ci |2
(7.128)
114
b2y =
230
222
(1 232 ) +
3.95 77 dB
12
12
(7.129)
qx2
22.nx
230
=
=
12
12
12
(7.130)
bgm.i : bruit present en sortie du multiplieur i lie `a lutilisation dun multiplieur simple
precision et au decalage `
a droite avant laddition. Nous regroupons ces deux operations
au sein dune meme source de bruit. Si aucun bit nest elimine, la multiplication fournit
une donnee possedant 31 bits pour la partie fractionnaire. Lutilisation dun multiplieur
travaillant en simple precision et la presence dun decalage `a droite avant laccumulation conduisent `
a une donnee possedant 11 bits pour la partie enti`ere. Sachant que 20
bits ont ete elimines, la puissance de ce bruit est la suivante :
b2gm =
2
qM
22.nM U LT
222
U LT
(1 22.km ) =
(1 22.km ) =
(1 240 )
12
12
12
(7.131)
Les bruits issus du recadrage (bgm.i ) et lies au renvoi de la donnee en memoire (bgadd ) sont
directement presents en sortie du filtre. Le bruit en entree bge traverse le filtre h. Ainsi,
lexpression du bruit en sortie du filtre est la suivante :
by (n) =
N
1
X
i=0
(7.132)
soit
by (n) =
N
1
X
i=0
bgm.i (n) +
N
1
X
i=0
ci .bge (n i)
(7.133)
Si nous considerons quune loi de quantification par arrondi est utilisee pour chaque changement de format, alors la moyenne du bruit associe `a chaque source est nulle. La moyenne du
bruit en sortie est nulle.
Les differentes sources de bruit ne sont pas correlees entre elles et le bruit en entree est un
bruit blanc. En utilisant lexpression 7.143 pour le bruit bge la variance du bruit en sortie du
filtre est la suivante
b2y
N
1
X
115
b2gm.i
i=0
b2y = 32
b2ge
N
1
X
i=0
|ci | =
N.b2gm.i
b2ge
N
1
X
i=0
|ci |2
222
230
(1 240 ) +
3.95 61.96 dB
12
12
(7.134)
(7.135)
116
Evaluation de la pr
ecision
Modelisation du processus de quantification :
Proprietes de la variable aleatoire e(n) :
e(n) est stationnaire,
le bruit issu de la quantification dun signal x(n) nest pas correle avec
ce signal,
les bruits de quantification sont statistiquement independants,
e(n) est un bruit blanc uniformement reparti,
e(n) est bornee par le pas de quantification,
la densite de probabilite de e(n) est uniforme sur lintervalle de quantification,
lergodicite implique que les moyennes temporelles et statistiques sont
equivalentes.
Q( )
+
-e
e = 0,
q2
12
(7.140)
q2
12
(7.141)
q
,
2
e2 =
Filtrage du bruit
Moments du bruit en sortie du filtre h(n) :
f
f2
7.4
= e
=
e2
+
X
n=
+
X
h(n) = e H(ej0 )
2
|h(n)| = e
2
n=
2
(7.142)
|H(ej )|2 d
(7.143)
Exemple
Pour illustrer le processus de conversion en virgule fixe, lexemple dun filtre IIR est traite
dans cette partie.
7.4 Exemple
7.4.1
117
Description de lapplication
Un filtre `a reponse impulsionnelle infinie compose de deux cellules dordre 1 cascadees est
considere. La fonction de transfert de ce syst`eme est la suivante
H(z) = H1 (z).H2 (z)
(7.144)
avec
H1 (z) =
N1 (z)
c1
=
D1 (z)
1 a1 .z 1
et
c2
N2 (z)
=
D2 (z)
1 a2 .z 1
H2 (z) =
(7.145)
c1 = 0.35
a1 = 0.8
(7.146)
c2 = 0.48
a2 = 0.6
(7.147)
y (n)
y (n )
zz
zz
7.4.2
7.4.2.1
D
etermination de la specification virgule fixe
D
etermination de la dynamique
Pour levaluation de la dynamique, nous utilisons la norme de Chebyshev basee sur lanalyse
de la reponse frequentielle. Nous devons etudier la dynamique des donnees presentes en sortie
de chaque addition ou serie dadditions. Ainsi, nous determinons la dynamique des donnees
y1 et y.
Dynamique de y1 .
La fonction de transfert entre la donnee y1 et lentree globale x est la suivante :
c1
Y1 (z)
= H1 (z) =
X(z)
1 a1 .z 1
(7.148)
118
H1 (ej ) =
c1
1+
a21
1/2
2a1 cos()
(7.149)
Les extrema de cette reponse frequentielle sont obtenus pour = 0 et = . Dans notre cas
nous obtenons les valeurs suivantes :
|H(ej0 )| =
|H(j )| =
c1
= 1.75
|1 a1 |
c1
= 0.4375
|1 + a1 |
(7.150)
(7.151)
Le maximum de cette reponse frequentielle est obtenu pour = 0 et cette fonction est
monotone et decroissante sur [0 ] si a1 est positif. Ainsi, la dynamique de la sortie du filtre
H1 est la suivante :
max (|y1 (n)|) = max (|x(n)|) max |H1 (ej )| = 1.75
n
Dynamique de y.
(7.152)
(7.153)
Pour simplifier la recherche du maximum de la reponse frequentielle de H(ej ) nous utilisons
les caracteristiques de chaque cellule. Chaque cellule correspond `a un filtre IIR dordre 1 et
passe-bas. Les reponses frequentielles de H1 et H2 etant monotones et decroissantes, alors le
maximum est obtenu pour = 0.
c1 c2
H(ej0 ) = H(z)|z=1 =
(7.154)
(1 a1 )(1 a2 ) = 2.1
Ainsi la dynamique de la sortie du filtre H est la suivante :
max (|y(n)|) = max (|x(n)|) max |H(ej )| = 2.1
n
7.4.2.2
(7.155)
D
etermination de la position de la virgule
(7.156)
mc1 = 1
ma1 = 0
mc2 = 1
ma2 = 0
(7.157)
7.4 Exemple
119
Filtre H1
La position de la virgule en sortie de la multiplication de c1 par x est la suivante :
mzc1 = mx + mc1 + 1 = 0 1 + 1 = 0
(7.158)
(7.159)
(7.160)
(7.161)
(7.162)
Filtre H2
La position de la virgule en sortie de la multiplication de c2 par y1 est la suivante :
mzc2 = my1 + mc2 + 1 = 1 1 + 1 = 1
(7.163)
(7.164)
(7.165)
(7.166)
(7.167)
Pour limiter le temps dexecution des operations de recadagre, les decalages `a droite en sortie
des multiplications peuvent etre deplaces vers lentree du filtre ou vers les coefficients. Nous
deplacons les decalages `
a droite de deux bits dzc1 et dzc2 vers les coefficients c1 et c2 . Ceci
necessite dintegrer 2 bits supplementaires `a la partie enti`ere de ces deux coefficients.
120
7.4.2.3
D
etermination de la largeur des donn
ees
Pour implanter ce filtre H, nous utilisons une architecture sur 16 bits et double precision dont
le synoptique est presente `
a la figure 7.21. La specification virgule fixe obtenue est presentee
`a la figure 7.39 avant le deplacement des operations de decalage et `a la figure 7.40 apr`es le
deplacement des operations de decalage.
x (n )
y (n )
zz
zz
Figure 7.39 Graphe flot de signal du filtre IIR avant le deplacement des operations de
decalage
x (n )
z
z
y (n )
zz
zz
Figure 7.40 Graphe flot de signal du filtre IIR apr`es le deplacement des operations de
decalage
7.4.3
Code C de lapplication
c1
c2
a1
a2
=
=
=
=
22938;
31457;
26214;
19661;
7.4 Exemple
121
7.4.4
Evaluation de la pr
ecision
Pour la specification virgule fixe presentee `a la figure 7.40, les differentes sources de bruit,
representee `
a la figure 7.41, sont les suivantes :
bge : bruit associe `
a lentree. Nous considerons que le signal x est issu dun convertisseur
analogique-numerique et est code sur 16 bits avec 15 bits pour la partie fractionnaire.
La puissance de ce bruit est la suivante :
22.nx
230
qx2
=
=
101.1 dB
(7.168)
12
12
12
bg1 : bruit present en sortie de ladditionneur lie au renvoi en memoire de la donnee y1 .
Il est necessaire de repasser cette donnee sur 16 bits car elle est ensuite utilisee pour
realiser une multiplication. Lors de ce changement de format, 15 bits sont elimines au
niveau de la partie fractionnaire.
b2ge =
b2g1 =
qy21
228
(1 22.ky1 ) =
(1 230 ) 95.1 dB
12
12
(7.169)
qy2
226
(1 22.ky ) =
(1 230 ) 89.1 dB
12
12
b('
b+
x (n )
++
c
+
z$#
b* )
++
(7.170)
zz
c
"
+
z& %
a
y (n )
++
zz
a
Figure 7.41 Graphe flot de signal du filtre IIR integrant les sources de bruit
Lexpression du bruit en sortie du premier filtre est la suivante
122
(7.171)
By1 (z) =
(7.172)
(7.173)
1
(N2 (z).By1 (z) + Bg2 (z))
D2 (z)
(7.174)
H2
1
Bg1 (z) +
.Bg2 (z)
D2 (z)
D1 (z)
(7.175)
Si nous considerons une loi de quantification par arrondi, alors la puissance du bruit en sortie
du filtre est la suivante :
b2y
ou
2
b2g1 Z H2 (ej ) 2
b2g2 Z
b2ge Z
2
1
j
H(e ) d +
d +
d (7.176)
.
.
.
=
j
j
2
2 D1 (e )
2 D2 (e )
b2y
b2ge .
+
X
n=
|h(n)| +
b2g1 .
+
X
n=
|hg1 (n)| +
H2
D1 (z)
b2g2 .
+
X
n=
|hg2 (n)|2
(7.177)
Chapitre 8
Introduction
Les solutions architecturales
Dans ce paragraphe, les differentes solutions architecturales pour limplantation des algorithmes de traitement numerique du signal (TNS) sont presentees. Pour chaque solution, les
caracteristiques en termes de co
ut, de consommation denergie, de performances, de flexibilite
et de temps de developpement sont detaillees. De plus, les consequences en termes de strategie
de codage des donnees en virgule fixe sont exposees. Pour illustrer cette analyse, certains des
crit`eres enumeres ci-dessus sont representes `a la figure 8.1.
8.1.1.1
Processeurs `
a usage g
en
eral
123
124
8.1.1.2
Les circuits dedies (ASIC 1 ) sont concus et optimises pour une application precise. Cette specialisation du circuit `
a lapplication cible permet dobtenir la solution fournissant les meilleures
performances en termes de temps de calcul, defficacite energetique et de ratio co
ut performance. En contrepartie, ces circuits offrent une flexibilite tr`es reduite, voire nulle. La complexite des differentes phases de conception, de validation, de test et de realisation de ces
circuits conduit `
a des co
uts et des temps de developpement eleves. De plus, cette tendance
sest aggravee avec levolution des technologies utilisees au niveau du processus de fabrication
des circuits integres. Pour reduire les co
uts et les temps de developpement de ces circuits, le
concept de reutilisation de blocs existants sest generalise. Le concepteur realise lassemblage
de differents blocs IP (Intellectual Properties) dej`a testes et valides.
La specialisation de larchitecture `
a lapplication est realisee en partie par le dimensionnement
des differents operateurs. Ainsi, le codage des donnees en virgule fixe doit minimiser la surface
du circuit tant que la contrainte de precision souhaitee en sortie de lalgorithme est respectee.
1000
Efficacit nergtique
(MOPS/mW)
ASIC
ASIC
100
Architecture
Architecture
reconfigurable
reconfigurable
10-50 MOPS/mW
e.g. Pleiades, DART
10
ASIP
ASIP
Coeur
Coeurde
deDSP
DSP
DSP
DSP
Processeurs
Processeursembarqus
embarqus
2 V DSP: 3 MOPS/mW
SA110
0.4 MOPS/mW
0.1
Flexibilit
8.1.1.3
Nous regroupons sous lappellation processeurs de traitement du signal, les processeurs DSP
disponibles sous forme de composant, les curs de DSP et les ASIP 2 dedies aux applications
de TNS.
Les processeurs DSP et les curs de DSP sont concus pour implanter efficacement les algorithmes specifiques au domaine du traitement du signal. Leur architecture est programmable
et regroupe les differents elements necessaires aux operations de TNS. Deux categories de processeurs DSP sont presentes sur le marche. La premi`ere categorie correspond aux processeurs
DSP concus afin dobtenir une efficacite energetique elevee et un co
ut relativement faible. Ces
caracteristiques sont obtenues en specialisant larchitecture du processeur. En contrepartie,
les compilateurs de langage de haut niveau ne permettent pas de fournir un code assembleur
1. Application Specific Integrated Circuit
2. Application Specific Instruction-set Processor
8.1 Introduction
125
8.1.1.4
Architectures reconfigurables
126
Ainsi, ce type darchitecture est preconise pour les algorithmes manipulant des donnees dont
la largeur est relativement faible. Les methodologies proposees [CCL01] pour le codage des
donnees en virgule fixe sont tr`es proches de celles utilisees pour les ASIC.
La reconfiguration au niveau fonctionnel permet de modifier le flot des donnees au sein de
larchitecture. Les interconnexions entre les ressources et la fonctionnalite de ces ressources
peuvent etre reconfigurees. Ce type de reconfiguration permet dadapter le mod`ele de programmation et les motifs de calcul `
a lapplication ciblee. Si le volume dinformation necessaire
`a la reconfiguration de larchitecture nest pas trop important, alors la reconfiguration peut
etre realisee dynamiquement au cours de lexecution du code.
Comme pour les DSP, la largeur des operateurs est fixe et ne peut prendre que quelques valeurs predefinies. Ainsi, les methodologies de codage des donnees en virgule fixe pour ce type
darchitecture sont relativement proches de celles utilisees pour les DSP. La difference majeure
reside dans le crit`ere `
a optimiser au niveau de larchitecture pour obtenir une implantation
de qualite.
8.1.1.5
Syst`
eme sur puce SoC
Pour repondre aux defis de limplantation des syst`emes complexes tels que les nouveaux
algorithmes destines aux telecommunications de troisi`eme generation, des syst`emes integrant
sur une meme puce differentes solutions heterog`enes sont mis en uvre. Ces syst`emes peuvent
regrouper les differents elements presentes ci-dessus. Lobjectif est dobtenir une plate-forme
relativement flexible et offrant des performances elevees `a travers lintegration daccelerateurs
adaptes aux parties critiques de lapplication. La flexibilite est presente `a travers les parties
programmables ou reconfigurables.
La methodologie de codage des donnees dans le cadre dun syst`eme sur puce necessite de
mettre en uvre une methodologie globale permettant doptimiser plus ou moins en parall`ele
le codage des donnees pour les differentes solutions architecturales.
8.1.2
Le marche des DSP a connu une forte augmentation en termes de volume de production `
a
la fin des annees 90 et representait en 2001 un marche de 4,8 milliards de $ [Str02a]. Cette
forte croissance etait liee `
a lexplosion du principal marche des DSP que represente le domaine
des communications sans fil cellulaires. Ces processeurs sont aussi presents dans le domaine
des modems et du contr
ole moteur pour les disques durs. Apr`es une diminution importante
des ventes en 2001, la croissance moyenne entre 2001 et 2005 est de 17%. Cette evolution est
liee `a la reprise de la croissance au niveau mondial, du marche des communications sans fil
avec les syst`emes de troisi`eme generation (UMTS), le GPRS, le WiFi et le bluetooth et `
a
lemergence de nouveaux marches dans le domaine du multimedia et dinternet (voix sur IP
[Str02b], decodeurs MP3 [Str00], cameras numeriques). La societe Forward Concepts, prevoit
une croissance des ventes de DSP de 25% par an dans les annees `a venir [Str02a] avec le
developpement des syst`emes de communication de troisi`eme generation .
Les ASIP sont utilises pour des applications necessitant des performances superieures aux DSP
en termes de puissance de calcul, de consommation denergie ou de co
ut. Ils sont presents dans
le domaine du multimedia (television numerique, compression audio et video et graphisme 3D)
127
8.2
8.2.1
8.2.1.1
Description de lunit
e de traitement
Repr
esentation des donn
ees
Processeurs virgule fixe et virgule flottante
Les DSP sont divises en deux grandes categories en fonction du codage des donnees en virgule
fixe ou en virgule flottante. Ces deux categories poss`edent des caracteristiques et des proprietes propres qui les orientent vers des marches differents.
Prix et consommation d
energie Les prix et la consommation des DSP virgule fixe sont
plus faibles que ceux des DSP virgule flottante, car la taille des donnees quils manipulent est
plus faible et lunite de traitement est moins complexe.
La figure 7.3 (voir page 78) montre la dynamique et la precision obtenues pour differentes largeurs de donnees dans le cas de lutilisation dun format en virgule fixe et en virgule flottante.
Lorsque la taille des donnees est relativement faible (16 bits) les caracteristiques en terme de
precision et de dynamique des deux formats sont proches. La representation des donnees en
virgule flottante necessite lutilisation de deux parties la mantisse et lexposant. Ainsi lorsque
le nombre de bits utilises est relativement faible, un compromis entre la dynamique et la precision doit etre effectue et peu de bits peuvent etre utilises pour lexposant. En consequence,
la dynamique obtenue nest pas superieure `a celle des DSP virgule fixe. Pour des largeurs de
donnees relativement faibles, les DSP sont exclusivement realises avec un format en virgule
fixe. Le format virgule flottante ne montre de linteret que pour des largeurs de donnees plus
elevees (32 bits), permettant alors dobtenir dexcellentes performances en terme de precision
et de dynamique de codage. Le prix dun processeur est proportionnel `a sa surface et la majorite de celle-ci est occupee par les bus et la memoire. La largeur des donnees manipulees
par les processeurs virgule fixe etant plus faible que celle des processeurs en virgule flottante,
le co
ut et la consommation du circuit sont moins importants.
Lunite de calcul des processeurs en virgule flottante est plus complexe car elle doit realiser
les operations de calcul sur la mantisse et lexposant. Ceci augmente le co
ut, la consommation
et le temps de latence de ce type dunite de traitement. Dans [Tou99] les experimentations
realisees par lauteur montrent que le temps de latence dun operateur de type additionneur
en virgule flottante est 2,3 fois superieur `a celui dun operateur en virgule fixe et que la surface
occupee est 4 fois superieure.
Temps de d
eveloppement des applications Lors du developpement dapplications pour
des processeurs virgule fixe, le concepteur doit realiser le codage et le cadrage des donnees
presentes au sein de lalgorithme. Il analyse la dynamique de lensemble des donnees, en deduit
le codage et determine les decalages necessaires pour aligner ces donnees lors des operations
daddition ou de soustraction. Le codage et le cadrage des donnees doivent etre optimises afin
de garantir labsence de debordements au sein de lalgorithme tout en maintenant la precision
128
maximale.
Les processeurs virgule flottante proposent une dynamique elevee qui permet de liberer lutilisateur des t
aches de codage des donnees et danalyse des debordements eventuels. Lalignement des donnees est automatiquement realise par le materiel, au sein de lunite de calcul.
Ainsi le temps de developpement dapplications pour ce type de processeurs est plus faible
par rapport `
a celui des processeurs virgule fixe.
March
es des processeurs Les DSP virgule fixe sont bien adaptes pour les applications
destines au grand public ou le co
ut de revient des composants constituant le syst`eme doit etre
le plus faible possible. Le surco
ut du developpement lie `a la specificite du codage en virgule
fixe est rapidement amorti par les grands volumes de production. La faible consommation
de ce type de composant permet de lutiliser au sein des applications embarquees. Ces DSP
sont tr`es utilises dans les secteurs en forte croissance tels que les telecommunications et le
multimedia.
Les processeurs en virgule flottante sont destines aux applications necessitant une dynamique
importante ou une precision elevee pour lesquelles un processeur en virgule fixe ne peut repondre `a ces exigences. Ces applications sont par exemple presentent dans le domaine de
laudionumerique. Les processeurs en virgule flottante sont utilises pour des applications realisees en petite serie ou le co
ut du developpement represente une part tr`es importante du co
ut
total du produit.
Le marche des processeurs DSP est domine par les processeurs en virgule fixe (95% des DSP
en 1996) et plus particuli`erement par les processeurs dont la largeur des donnees est de 16
bits (95% des DSP virgule fixe en 1996) [Lap96]
8.2.1.2
Largeur naturelle La largeur naturelle des donnees correspond au format des donnees
qui sont manipulees le plus efficacement par le bus et le chemin de donnees du processeur
[LBSL96]. La majorite des operations sur ces donnees est realisee en un cycle.
La largeur naturelle des donnees est un param`etre fondamental au niveau du DSP car elle
influence directement le prix de ce dernier en fixant la largeur minimale des operateurs, des
bus de donnees et de la memoire. Afin dadapter au mieux le DSP `a lapplication souhaitee,
certains fabricants proposent des coeurs de DSP pouvant etre synthetises et dont la largeur
naturelle est parametrable. Ainsi le concepteur va choisir la largeur minimale repondant aux
crit`eres de precision souhaites.
Extension de la pr
ecision Les DSP permettent dutiliser au sein de lunite de traitement
un format de donnees etendu. La largeur des bus dinterconnexion entre les differentes unites
fonctionnelles du chemin de donnees est superieure `a la largeur naturelle des donnees afin de
conserver lensemble des bits issus des operateurs. Ceci permet de maintenir une precision
plus elevee sur une suite doperations dont les operandes restent dans lunite de traitement et
ne sont pas renvoyees en memoire. Lefficacite de cette methode est fortement liee au nombre
129
x=
x<
,-./
(b)
(a)
,-./
8,-./
x=
x= y<
y= x<
x<
+
y=
y<
x= +y=
x< + y<
PQIFHMHDEIJ RO CH QODOJBO
LEMJNO LEMJNO
(c)
x<
y=
y<
y< x<
x=
+
+
+
y= x=
(y x)?
(y x)@
8 ,-./
8,-./
Etant
donne le nombre doperations a` realiser pour le calcul dune operation de base en double
precision, le temps dexecution de celle-ci est fortement augmente par rapport `a une arithmetique simple precision. Ceci limite lutilisation de cette arithmetique `a des portions de code
critiques en terme de precision.
8.2.2
Pr
esentation des diff
erents
el
ements du chemin de donn
ees
Dans une premi`ere partie nous presentons lensemble des elements constituant les unites de
traitement et explicitons leurs caracteristiques, nous analysons ensuite les differents types
darchitecture des unites de traitement.
8.2.2.1
Multiplieur
130
Unit
e Arithm
etique et Logique : UAL
Lunite arithmetique et logique permet de realiser les differentes fonctionnalites decrites cidessous avec un 1 cycle :
operations logiques : AND, OR, NOT ;
operations arithmetiques : addition, soustraction, incrementation, decrementation, valeur absolue. Certaines UAL permettent de realiser une division en plusieurs cycles.
Les UAL sont concues pour travailler sur des donnees dont le format est identique `a celui
de laccumulateur, mais certains DSP tels que le ADSP21xx [Ana95] poss`edent une UAL ne
pouvant manipuler que des donnees au format naturel. Dans ce cas une operation sur un
registre daccumulation necessite plusieurs cycles.
8.2.2.3
Registres
Structure des registres Avant de presenter les structures des registres utilisees dans les
unites de traitement nous definissons les deux termes suivants :
jeu de registres : ensemble des registres presents dans le chemin de donnees et destines
`a stocker les operandes et les resultats intermediaires.
classe de registres : sous-ensemble de registres du jeu de registres possedant les memes
fonctionnalites
Dans les processeurs, deux types de structure du jeu de registres sont presentes. La premi`ere
consiste `a utiliser un jeu de registres homog`ene dont tous les registres le composant sont
interchangeables. Cette technique necessite dutiliser un banc de registres integrant plusieurs
ports de communication permettant dacceder en lecture et en ecriture aux differents registres
en parall`ele. Si un operateur utilise deux operandes issues dune file de registres alors cette
derni`ere doit posseder 5 ports (2 pour la lecture des operandes par loperateur, 2 pour lecriture des operandes issues de la memoire et 1 pour lecriture du resultat). Cette solution est
tr`es co
uteuse en terme de surface de silicium, mais garantit lhomogeneite de la structure de
registres. Le DSP TMS320C62xx [Tex99b] est compose de deux files de 16 registres de 32
bits. Les deux files de registres poss`edent 9 ports de lecture (32 bits) et 6 ports decriture
131
(32bits). Cette approche est utilisee dans les processeurs generaux de type RISC, les DSP
virgule flottante et les nouveaux DSP virgule fixe.
La seconde approche consiste `
a specialiser les registres et `a les relier directement aux unites fonctionnelles, afin de reduire le nombre et la complexite des connexions. Une classe de
registres est utilisee pour chaque operande et le resultat de loperation est stocke dans une
troisi`eme classe de registres. Cette specialisation de la structure des registres permet de diminuer les co
uts et daugmenter la rapidite des transferts entre les differentes unites. Le jeu
dinstructions associe `
a cette architecture est specialise car chaque instruction utilisant un
operateur, specifie precisement le ou les registres qui peuvent etre utilises. Les DSP de premi`ere et de seconde generation [Lap96] utilisent ce type dapproche afin doptimiser le co
ut.
Ces DSP poss`edent de nombreuses classes de registres (2 `a 8) composees de peu de registres
(1 `a 8).
Il est possible de quantifier lhomogeneite du jeu de registres en calculant le rapport entre le
nombre de classes de registres et le nombre total de registres. Pour un jeu de registres homog`ene cette metrique va tendre vers 0, et dans le cas de registres heterog`enes cette metrique
tendra vers 1. Lhomogeneite des registres a une influence importante sur la qualite du code
genere par les compilateurs de langage de haut niveau.
Registres daccumulation Ces registres recoivent les valeurs intermediaires issues des differents calculs realises dans lunite de traitement. La taille de ces registres est determinee afin
de pouvoir stocker, avec le maximum de precision, les resultats intermediaires des operations
de type multiplication accumulation (MAC) :
yACC =
M
X
x[i]y[i]
(8.1)
i=1
(8.2)
Ces Ng bits de garde vont permettre de stocker le resultat dau moins NAdd = 2Ng additions
sans necessiter de recadrer les donnees. Pour les processeurs possedant un jeu de registres
heterog`ene, le nombre de registres daccumulation influence la qualite du code et la souplesse
de programmation du processeur. La presence dun faible nombre de registres daccumulation
necessite de renvoyer les resultats intermediaires en memoire. Ceci ralentit lexecution du
programme, augmente la taille du code et diminue la precision du calcul.
132
8.2.2.4
Le codage des donnees en virgule fixe necessite de realiser de nombreux decalages afin daligner les donnees. Nous trouvons au sein des unites de traitement des DSP, deux types de
registres `a decalage. La premi`ere categorie correspond aux registres `a decalage specialises qui
ne peuvent realiser que quelques decalages predefinis. Ces decalages sont realises en parall`ele
`a lexecution des autres operations et ne necessitent pas de cycles dhorloge supplementaires.
Ces registres sont affectes `
a la sortie ou `a lentree dun operateur precis afin de fournir une
plus grande flexibilite pour le cadrage des donnees. Ces registres sont commandes dans la
plupart des cas par des bits de mode. Cette specialisation a ete realisee afin de minimiser la
complexite du registre tout en permettant dutiliser plusieurs formats. Ce type de registres est
par exemple present en sortie des multiplieurs afin de pouvoir eliminer le second bit de signe
present avec une arithmetique fractionnaire et dans certains cas, pour modifier la position de
la virgule afin deviter les debordements lors des accumulations realisees par la suite.
La seconde categorie correspond aux registres en barillet, ils poss`edent la capacite de realiser
lensemble des decalages `
a droite et `a gauche possibles sur une donnee avec un temps de
latence qui ne depasse pas un cycle. Ils sont integres au sein dune UAL ou constituent une
unite specifique en parall`ele. Ce type de registres apporte une tr`es grande souplesse dans le
cadrage des donnees, et permet de modifier le format de celles-ci avec un surco
ut maximal
dun cycle. Labsence de ce type de registres dans un DSP est un handicap important pour
lobtention dun code optimise. Le DSP56000 [Mot94] ne poss`ede que des registres permettant
de realiser le decalage de 1 bit `
a droite ou `a gauche par cycle. Dans ce cas la minimisation
du nombre de decalages est un facteur primordial dans lobtention dun code efficace sachant
quun decalage de N bits necessite N cycles.
8.2.2.5
Implantation de la loi de d
epassement Les debordements peuvent se produire lors de
differentes operations arithmetiques au sein de lunite de traitement ou lors dun changement
de format. Les architectures des DSP permettent dutiliser une loi de depassement modulaire
et une loi de saturation.
Lapproche la plus simple en cas de debordement est de ne conserver que les N bits disponibles pour representer le format et deliminer les bits les plus significatifs supplementaires.
Cette loi de depassement modulaire poss`ede des proprietes concernant lerreur de codage
peu interessante, ainsi de nombreux DSP poss`edent des unites permettant dimplanter une
loi de saturation. Elle permet dobtenir une erreur de codage plus faible et de conserver le
signe de la donnee `
a coder. Les unites de saturation detectent la presence dun debordement
et substituent la donnee par celle representant la valeur minimale ou maximale la plus proche.
Ce type dunites est present en sortie des accumulateurs afin de saturer la valeur de ceuxci avant le transfert de leur contenu en memoire. Certains DSP [Tex99b] [Bie97] [MWK98]
poss`edent en sortie de ladditionneur ou de lUAL une unite de saturation permettant de
gerer les debordements lors des calculs intermediaires. Une unite de saturation est presente
au sein de quelques processeurs [Bie97] [Tex99a] pour saturer le resultat de la multiplication.
Dans le code complement `
a 2, lorsque les deux operandes sont egales `a la valeur minimale
133
k
(k + 1)
Q(x) =
(k + 1)
si k x < (k + 12 )
si (k + 12 ) < x (k + 1)
si x = (k + 21 )
(8.3)
La valeur mediane de chaque intervalle [k, (k+1)] etant codee systematiquement `a la valeur
superieure, lerreur de quantification nest pas nulle. Cette erreur est neanmoins nettement
plus faible que celle presente lors dune quantification par troncature.
Pour realiser un arrondi sur le ke`me bit de la donnee nous additionnons 2k1 `a la valeur `
a
e
`
me
arrondir et nous realisons ensuite une troncature au niveau du k
bit. Certains processeurs [Ana95] [Mot94] [Tex99a] poss`edent une instruction ou un mode qui supporte larrondi
conventionnel et qui realise automatiquement les operations decrites ci dessus. Sinon il faut
explicitement charger la valeur 2k1 dans laccumulateur avant de debuter les calculs. Ce
type darrondi est le plus utilise car son implantation est plus simple que celle de larrondi
convergent presente ci-apr`es.
134
Afin deliminer le biais un arrondi convergent peut etre utilise [LBSL96]. Il affecte la valeur
mediane de facon equiprobable `
a la valeur superieure et inferieure :
si k x < (k + 21 )
k
(k + 1)
si (k + 21 ) < x (k + 1)
(8.4)
Q(x) =
1
(k) ou (k + 1)
si x = (k + 2 )
1
1
avec P Q(x) = k \ x = (k + ) = P Q(x) = (k + 1) \ x = (k + )
2
2
Cette technique permet de coder la valeur mediane de mani`ere equiprobable `a laide de lanalyse de la parite de la donnee. Les donnees impaires sont codees `a la valeur superieure et les
donnees paires `
a la valeur inferieure. Pour realiser ceci, le DSP DSP56000 [Mot94] teste le
e
`
me
k
bit et ne realise laddition de cette donnee avec 2k1 que si le bit est egal `a 1. Pour sa
part, le DSP ADSP21xx [Ana95] realise dabord laddition et ensuite met `a 0 le ke`me bit.
Ce type darrondi permet dobtenir une moyenne de lerreur de quantification nulle, mais il
est present que dans quelques DSP [Luc99] [Mot94] [Ana95], car son implantation est plus
complexe.
8.2.2.6
Unit
es sp
ecifiques
Afin daccelerer lexecution dalgorithmes frequemment utilises dans certains domaines dapplication, les DSP fournissent des unites specifiques permettant dimplanter plus efficacement
ces algorithmes :
Unite de gestion du codage en virgule flottante par bloc
Unite dacceleration du decodage de Viterbi
8.2.3
Les premi`eres generations de DSP possedaient une architecture du chemin de donnees basee
sur une structure de type MAC [Lap96]. Pour faire face `a la demande croissante en puissance
de calcul necessaire pour les nouvelles applications de telecommunications et de multimedia,
les concepteurs de DSP ont propose deux types darchitectures [EB00]. La premi`ere est une
extension de larchitecture MAC traditionnelle et la seconde est une architecture orthogonale
sinspirant des processeurs RISC et basee sur la mise en parall`ele dunites fonctionnelles au
sein du processeur. Ces deux derni`eres architectures seront etudiees en 3e`me annee.
8.2.3.1
Les premi`eres generations de DSP ont ete concues afin dimplanter efficacement les operations
de type MAC correspondant `
a la structure de base de nombreux algorithmes tels que les filtres
(FIR, IIR). La structure dun filtre FIR est representee `a la figure 8.3, celui-ci est constitue
de cellules elementaires juxtaposees realisant une operation de multiplication accumulation :
le resultat en sortie de la cellule est egal `a la somme du resultat precedent et celui de la
multiplication du coefficient hn et de loperande xkn issue de la ligne `a retard. Les DSP
poss`edent une architecture permettant de calculer la sortie dune cellule elementaire par cycle.
Le schema dune architecture traditionnelle de type MAC est presente `a la figure 8.4, les
operandes sont soit situees dans les registres Rx et Ry ou directement en memoire.
zST
hUXW
xZXU
135
zST
zST
hU
zST
hUVW
hUVY
RR]]
RR^^
befg
befg
2.befg
+
2.befg+bh
[\\
[\\
_`a bcdd
bh : jklmdn on
mpaq on r`don
Deux variantes de la structure MAC sont utilisees dans les DSP. La premi`ere realise les operations de multiplication accumulation de facon pipelinee, le multiplieur realise la multiplication
des operandes de la ke`me cellule et stocke le resultat dans un registre intermediaire (P), en
parall`ele laccumulateur realise laccumulation associee `a la cellule precedente. Cette structure
est presente dans les DSP tels que le TMS320C5x [Tex98], DSP16xx [Luc].
Dans la seconde variante, loperation de multiplication est dabord realisee et le resultat est
transmis `a laccumulateur afin deffectuer laddition. Ces deux operations etant realisees de
mani`ere sequentielle au cours dun meme cycle, les temps de latence du multiplieur et de
laccumulateur doivent etre plus faibles par rapport `a la solution precedente.
Les premi`eres generations de DSP possedaient peu dunites fonctionnelles, ainsi lUAL du
DSP etait utilisee pour realiser loperation daccumulation au sein du MAC. Les generations
actuelles de DSP int`egrent plus dunites en parall`ele et permettent dutiliser un additionneur/soustracteur pour lunite MAC, independant de lUAL. De plus ces DSP incorporent
des unites de manipulation de bits incluant un registre en barillet.
136
8.3
Description de lunit
e m
emoire
recherche de linstruction
lecture de la donnee xnk
lecture du coefficient hk
vieillissement des donnees xnk1 = xnk
Afin deliminer le dernier acc`es les processeurs utilisent un mode dadressage particulier qui
permet de vieillir automatiquement les donnees, ceci permet de reduire le nombre dacc`es par
cycle `a 3.
Larchitecture traditionnelle des processeurs generaux est basee sur le mod`ele de Von Neuman
pour lequel une memoire unique est utilisee pour stocker les donnees et le programme. Pour
obtenir des performances acceptables ces processeurs utilisent des memoires caches.
Larchitecture des PTS est basee sur le mod`ele Harvard dont le principe est la separation de
la memoire pour les donnees et le programme. Les deux espaces memoire sont totalement independants, ils poss`edent leurs propres bus de donnees et dadresses et leur propre generateur
dadresses.
Differentes variantes du mod`ele Harvard ont ete proposees afin daugmenter le nombre dechanges
simultanes entre la memoire et les unites de calcul. Ces variantes sont presentees `a la figure
8.5 [Lee88]. Le choix des diverses variantes est fonction de la structure de localisation des
operandes [Ara97] utilisee dans le PTS.
8.3.1
8.3.1.1
Mod`
eles de localisation des op
erandes
Mod`
ele registre m
emoire
Les architectures basees sur le mod`ele registre-memoire, utilisent une operande presente en
memoire et une operande stockee dans un registre [Ara97]. Au cours dun cycle, une seule
lecture doperande en memoire est realisee, ainsi il est possible dutiliser la structure Harvard de base et sa premi`ere declinaison qui poss`ede une seule memoire pour les donnees. Le
137
DP
DP
IP
DP
IP
IP
1-vers-2
IM - DM
DM
DP
IM
DM
b) Architecture Harvard
IP
DP
IM/DM
c) Dclinaison 1
IP
1-vers-2
DM
IM
d) Dclinaison 2
DM 1
DM 2
IM
e) Dclinaison 3
8.3.1.2
Mod`
ele registre-registre ou load/store
Afin de saffranchir du temps dacc`es `a la memoire une structure evitant la lecture directe
dune operande en memoire est utilisee. Les deux operandes sont stockees dans des registres
et le chargement de ceux-ci est effectue en parall`ele avec lexecution dune operation dans
lunite de calcul. Afin de respecter les contraintes de dependance des donnees, loperation
courante seffectue en meme temps que le chargement des operandes de linstruction suivante.
Linstruction specifie les deux registres des operandes sources et le registre de stockage du
resultat, ainsi que ladresse des 2 operandes `a charger pour linstruction suivante. Ce type de
structure permet de diminuer le temps dexecution de linstruction par rapport `a la structure
precedente, en le rendant independant du temps dacc`es `a la memoire :
tinst = texec
(8.6)
138
Ce mod`ele de localisation des operandes necessite pour un operateur de lire deux donnees par
cycle. Deux approches sont utilisees afin de realiser ces deux lectures.
Utilisation dune m
emoire multi-ports Cette structure est composee dune memoire
multi-ports permettant de lire plusieurs donnees en parall`ele au cours dun meme cycle. Dans
ce cas la majorite des architectures memoire correspond a` la seconde declinaison. Elle est
composee dune memoire programme mono port et dune memoire donnees double ports permettant de lire deux donnees en parall`ele. Laspect multi-ports de la memoire va augmenter
la surface et le co
ut du circuit. Cette structure est tr`es utilisee dans les processeurs de type
VLIW comme le TMS320C62x [Tex99b] [TH97]. Lassociation de ce mod`ele memoire et dune
file de registres permet de garantir lhomogeneite de larchitecture.
8.3.2
Sp
ecificit
e des DSP
Comme nous lavons vu precedemment le temps dacc`es `a la memoire est un facteur essentiel
pour lobtention de performances elevees, ainsi pour les ASIP ou syst`eme sur une puce la taille
de la memoire ROM et RAM est ajustee afin de pouvoir contenir lensemble du programme et
des donnees necessaires `
a lapplication. Ceci permet de ne pas utiliser de memoires externes
et ainsi de ne pas augmenter le temps dacc`es `a la memoire, le nombre de broches, la surface
du syst`eme et la consommation.
Dans le cadre des DSP lapplication netant pas connue `a priori, il est possible dutiliser de la
memoire externe pour augmenter la taille de lespace memoire, mais ceci est tr`es penalisant
en terme de co
ut (necessite dune memoire externe rapide), et de consommation.
8.3.3
Mode dadressage
Afin de respecter les performances souhaitees au niveau de la bande passante de communication avec la memoire, il est necessaire davoir des unites specialisees (unite de generation
dadresses) permettant de calculer les adresses des donnees rapidement et en parall`ele avec
lexecution des autres operations. En effet la charge de calcul concernant les adresses est
proche de celle des donnees [Peg99].
139
Les algorithmes de TNS sont caracterises par des acc`es reguliers et sequentiels `a la memoire.
Les unites de generation dadresses vont exploiter ces proprietes afin doptimiser le calcul
des adresses en proposant des solutions cablees permettant dimplanter les modes dacc`es les
plus couramment utilises. Ceux-ci sont associes `a la structure somme de produits. Les DSP
permettent dutiliser de nombreux modes dadressage afin doptimiser le calcul des adresses
pour les diverses applications de traitement du signal. Nous allons presenter differents modes
dadressage [LBSL96] et plus particuli`erement le mode dadressage indirect par registres qui
est le plus adapte aux applications de TNS.
8.3.3.1
Dans le mode dadressage immediat, la valeur de la donnee est directement codee dans linstruction, ceci est utilise pour initialiser les registres dadresses ou pour stocker une constante
utilisee dans une operation arithmetique. Lorsque la taille de la donnee est faible il est possible
de coder linstruction en un seul mot compose de loperation `a realiser et de la valeur de la
donnee. Mais pour une donnee de valeur elevee, il est necessaire dutiliser 2 mots pour coder
linstruction, ceci est penalisant en terme de densite de code et de temps dexecution.
8.3.3.2
Dans le mode dadressage direct, ladresse de la donnee est codee directement dans linstruction, si lensemble de ladresse est specifie il est necessaire dajouter un second mot pour coder
linstruction.
Afin dencoder partiellement ladresse, un syst`eme de memoire paginee peut etre utilise.
Ladresse de la donnee est composee dun numero de page stocke dans un registre (pointeur de page) et dun deplacement dans la page qui sera stocke dans linstruction. La taille du
deplacement est fonction de la longueur de la page et doit etre relativement faible. Le choix
de la taille de la page resulte dun compromis entre le nombre de pages qui ne doit pas etre
trop eleve afin de minimiser le nombre de modifications du pointeur de page et la longueur de
la page qui doit rester faible afin dencoder le deplacement avec un minimum de bits. Dans
le cas du TMS320C54x la taille dune page est de 128 mots, ainsi ladresse de la donnee est
codee dans linstruction sur 7 bits. Ce type dadressage est interessant si le programme acc`ede
de mani`ere sequentielle `
a des donnees regroupees dans des pages identiques. Des techniques
doptimisations existent pour minimiser le surco
ut associe aux diverses initialisations du pointeur de page [Sud98]
8.3.3.3
Dans le mode dadressage indirect, la donnee est pointee en memoire via un registre dadresse.
Ceci permet de specifier dans linstruction le registre `a utiliser et non ladresse de la donnee
et ainsi de reduire fortement le nombre de bits necessaires pour encoder la localisation de la
donnee. Le nombre de registres dadresses est limite afin de ne pas utiliser trop de bits dans
linstruction pour le specifier. Ce mode dadressage est le plus utilise dans les algorithmes de
TNS pour les raisons suivantes :
encodage efficace de ladresse dans linstruction ;
mode dadressage naturel des tableaux (adressage par pointeur) ;
140
Les unites de generation dadresses permettent dutiliser 4 types dadressage specifiques afin
de repondre aux contraintes dadressage des donnees de certains algorithmes, sans ajouter
dinstructions supplementaires.
Adressage lin
eaire Afin de pouvoir se deplacer rapidement dans un tableau des possibilites
de post-modifications sont disponibles. Ceci permet dincrementer ou decrementer la valeur
du registre dadresse en parall`ele `
a lexecution dune operation. Il est possible de se deplacer de facon non contigue en ajoutant un offset `a ladresse. Cet offset est soit stocke dans un
registre quelconque specifie dans linstruction ou dans un registre dedie appele registre doffset.
Indexage La valeur de ladresse est obtenue `a partir de laddition de deux registres dadresses
ou dun registre dadresse et dune constante codee dans linstruction. La premi`ere partie de
ladresse represente ladresse de base du bloc de donnees et nest pas modifiee lors de lacc`es
`a ce bloc et la seconde partie represente le deplacement par rapport `a ladresse de base.
Ce mode dadressage est utilise lorsque le code doit acceder `a des blocs de donnees de structure
identique et dont ladresse de base est differente. Il est utilise pour le passage de param`etres
lors de lappel de routines et pour la gestion de la pile.
Modulo Ce mode dadressage permet de gerer des buffers circulaires utilises dans les algorithmes de filtrage. La gestion de ce type de buffers necessite de verifier apr`es chaque incrementation (decrementation) du registre dadresse, si celui-ci pointe sur la derni`ere (premi`ere)
valeur du tableau. Dans ce cas, il faut rediriger le pointeur sur le debut (fin) du tableau.
Deux methodes sont utilisees au niveau des generateurs dadresses pour realiser ce type
dadressage. La premi`ere methode utilise 2 registres pour stocker ladresse de debut et de
fin du buffer circulaire afin de pouvoir detecter lacc`es `a la derni`ere ou `a la premi`ere valeur
du tableau. Dans le second cas, le DSP stocke dans un registre uniquement la taille du buffer
circulaire et impose une contrainte sur ladresse de depart du buffer : celle-ci doit etre un
multiple de 2k relie `
a la taille N du buffer par lexpression suivante :
2k > N
(8.7)
Bit invers
e Ce mode dadressage est utilise pour ladressage des donnees en entree ou
en sortie de lalgorithme de la transformee de Fourier rapide (FFT). Ladressage bit inverse
consiste `a inverser lordre des N derniers bits dun registre dadresse pour une FFT de taille
N
2 . Lunite de generation dadresses realise cette operation en inversant directement les bits
du registre dadresse ou en propageant la retenue en ordre inverse lors des calculs arithmetiques sur ce registre dadresse.
8.4
8.4.1
8.4.1.1
141
Description de lunit
e de contr
ole
Type de code et Pipeline
Pr
esentation du pipeline
Lefficacite dun PTS reside dans sa capacite `a realiser une instruction par cycle. Chaque
instruction etant composee dune sequence doperations, il est necessaire dexecuter ces operations en parall`ele. La technique du pipeline permet de decomposer les differentes phases
dune instruction et de les realiser en parall`ele [Lee89]. Une instruction classique est composee des 5 phases suivantes :
Pipeline sur les instructions
1. Recherche de linstruction
2. Decodage de linstruction
Pipeline sur les donnees
3. Lecture des operandes
4. Execution de linstruction
5. Ecriture
du resultat
A chaque cycle le pipeline realise une operation sur des instructions differentes. Au cours du
meme cycle le pipeline realise le decodage de linstruction Instn , la recherche en memoire de
linstruction suivante Instn+1 et la lecture des operandes de linstruction precedente Instn1
La profondeur du pipeline (nombre detages) est un compromis entre la facilite de programmer et de contr
oler celui-ci et la rapidite du processeur. Les processeurs traditionnels utilisent
un pipeline dont la longueur varie entre 3 et 5 etages. Dans des processeurs de type VLIW, la
longueur du pipeline est plus importante, ceci permet de simplifier chaque operation `a realiser
dans celui-ci et ainsi dutiliser des horloges de frequence plus elevee, le TMS3320C62x poss`ede
un pipeline de 11 etages et permet dutiliser une frequence dhorloge de 200 MHz [Tex99b].
La mise en parall`ele des differentes phases dune instruction peut entraner les aleas de fonctionnement suivants [HP96] [Yar99] :
aleas de ressource : cette situation se produit lorsque le processeur ne peut accepter
une combinaison dinstructions utilisant les memes ressources en meme temps ;
aleas de donnees : ce cas se presente lorsque les donnees dune instruction dependent
du resultat dune instruction precedente qui nest pas encore terminee ;
aleas de contr
ole : ceci correspond `a la rupture du flot de contr
ole du programme lors
dun branchement, dun appel ou dun retour de sous routines ou dinterruption. Lorsquune instruction de branchement est detectee une ou plusieurs instructions consecutives sont dej`a rentrees dans le pipeline, il est alors necessaire de les eliminer du
pipeline afin de respecter le flot de contr
ole du programme.
8.4.1.2
Dans cette partie nous presentons les deux types de codage dinstructions [Ga97] [Ga96] utilises pour programmer les processeurs utilisant un pipeline, nous presentons les deux categories
142
de processeurs lies aux types de codage et les mecanismes associes pour gerer les aleas de donnees et de ressources.
Codage des instructions stationnaire dans le temps Chaque instruction du jeu dinstructions definit lensemble des operations `a realiser pour chaque unite fonctionnelle, au cours
du cycle [Lee89]. Dans le cas de larchitecture de la figure 8.4, trois actions sont `a realiser, la
premi`ere correspond `
a loperation `
a executer et les deux derni`eres au chargement des deux
registres avec les operandes presentes en memoire. Le schema du pipeline pour ce type de
code est presente `
a la figure 8.6. Un exemple dinstruction utilisant ce principe est presente
ci dessous :
MPY Rx,Ry,P
ADD ACC,ACC,P
LD Rx,*(ARx++)
LD Ry,*(ARy++)
Figure 8.6 Synoptique du pipeline sur les donnees pour un codage stationnaire dans le
temps
Linstruction specifie lensemble des operations `a realiser sur les donnees presentes dans les
differentes parties du chemin de donnees. Le programmeur doit assurer lalimentation du pipeline et est responsable de la gestion des aleas lies `a la dependance des donnees, ceux-ci sont
analyses `a partir dune table de reservation qui permet de visualiser lutilisation des ressources
et des donnees.
143
Figure 8.7 Synoptique du pipeline sur les donnees pour un codage stationnaire au niveau
des donnees
8.4.2
Deux categories de format dinstructions sont possibles [Ga97] [Ga96], le choix de lune ou
lautre sera fonction du domaine dapplications du processeur.
8.4.2.1
Format encod
e
Le challenge pour les processeurs embarques, est de minimiser la taille de la puce afin de
reduire les co
uts, tout en maintenant des performances en terme de puissance de calcul elevees. Ainsi le nombre dinstructions pour realiser une operation et la largeur des instructions
doivent etre minimises afin de diminuer la taille de la memoire programme [Peg99]. Pour
obtenir des performances elevees, linstruction doit encoder le maximum de parallelisme.
Le second facteur important dans les applications embarquees est la consommation du circuit.
Elle est proportionnelle `
a la taille des bus et de la memoire. La minimisation de la taille des
instructions va permettre de diminuer la consommation liee `a la memoire programme.
Le choix du format des instructions resulte dun compromis entre le parallelisme offert par
linstruction et sa taille. Elle doit etre compacte afin de minimiser la taille de la memoire programme et elle doit offrir le maximum de parallelisme pour utiliser efficacement les ressources
du processeur. Ce jeu dinstructions est construit `a partir des statistiques obtenues sur des
applications representatives (benchmarks) qui permettent de determiner les instructions et
les unites les plus utilisees et de reveler les opportunites de parallelisme [Za96]. La diversite
des algorithmes retenus pour realiser les statistiques, est un facteur primordial dans le degre
de specialisation dun DSP `
a un domaine dapplications donne.
Cette minimisation du nombre de bits est realisee `a laide des concepts suivants [LBSL96] :
reduction du nombre doperations disponibles au sein du jeu dinstructions ;
reduction du nombre de modes dadressage et des possibilites de mise `a jour des registres dadresses ;
restrictions sur les operandes sources et destinations des instructions (specialisation
des registres) ;
utilisation de bits de mode.
Ce type de restriction va sacrifier une partie du parallelisme disponible et rendre la structure
du jeu dinstructions heterog`ene en specialisant les registres sources et de destination des
144
8.4.3
8.4.3.1
Structure de contr
ole
Boucles mat
erielles
8.4.3.2
Instructions de branchement
Comme nous lavons vu dans le paragraphe 8.4.1.1, la presence dinstructions de branchement au sein du code introduit des aleas de fonctionnement du pipeline. La premi`ere solution
pour gerer ces aleas, est de vider le pipeline des instructions ne correspondant pas au flot de
contr
ole et de ne pas executer doperations entre lexecution du branchement et la premi`ere
instruction pointee par ce branchement. Cette technique appelee branchement multi cycles,
augmente le temps dexecution lie `
a la gestion du branchement. Ce temps est fonction de la
profondeur du pipeline.
Pour diminuer les penalites liees aux traitements des branchements les techniques de branchements retardes sont utilisees dans les DSP. Plusieurs instructions devant etre executees avant
le branchement sont placees, apr`es celui-ci. Ces instructions seront executees entre linstruction de branchement et la premi`ere instruction pointee par celui ci.
145
Instructions de mode
Les DSP poss`edent des registres detat ou de mode afin dimplanter un contr
ole `a laide de
ce registre et non au sein de linstruction. Ces registres de mode sont utilises pour contr
oler
les parties du chemin de donnees qui varient peu au cours dune sequence dinstructions. Ces
registres sont initialises ou modifies `a laide dinstructions specifiques, avant lutilisation de
lunite fonctionnelle.
8.4.3.4
Instructions `
a pr
edicat
Les instructions `
a predicat sont des instructions conditionnelles du type : si condition alors
executer operation. Cette structure permet de minimiser le nombre dinstructions pour coder
une structure conditionnelle du type If Then Else en eliminant les differentes instructions
de branchement. Ceci est illustre `
a la figure 8.8. Le TMS320C62x [Tex99b] permet de rendre
lensemble de ces instructions conditionnelles `a laide des predicats.
146
Annexe A
Transform
ees en Z
Type
Xi (z)
polynomial en z
p
ole reel simple
k
k ck
1
1pz 1
pz 1
(1pz 1 )2
1
(1pz 1 )2
p2 z 1
(1pz 1 )3
r sin(0 )z
(zrei0 )(zrei0 )
p
ole reel double
p
ole reel double
p
ole reel triple
p
ole complexe conjugue
xi (n)
P
k ck (n
pn u(n)
npn u(n)
(n + 1)pn u(n)
n(n1) n
p u(n)
2
r n sin(0 n)u(n)
147
k)
148
x(t)
x(n)
X(z)
(n)
(n k) z k
z
u(t)
u(n)
z1
Tz
t
n
(z 1)2
T 2 z(z + 1)
1 2 1
2
(nT
)
t
2
2
2(z 1)3
t
z
an
aT
za
A.2
Transform
ees de Fourier
149
x(t)
x(n)
eat
eanT
sin 0 t
sin 0 nT
cos 0 t
cos 0 nT
eat sin 0 t
eat sin 0 nT
eat cos 0 t
eat cos 0 nT
X(z)
z
z eaT
z sin 0 T
2
z 2z cos 0 T + 1
z(z cos 0 T )
2
z 2z cos 0 T + 1
zeaT sin 0 T
z 2 2zeaT cos 0 T + e2aT
z 2 zeaT cos 0 T
z 2 2zeaT cos 0 T + e2aT
ax1 (t) + bx2 (t) ax1 (n) + bx2 (n) aX1 (z) + bX2 (z)
x(t kT )
x(n k)
z k X(z)
Table A.2 Tables des transformees en Z de fonctions usuelles. T est la periode dechantillonnage du signal transforme dans lequel on a pose t = nT .
150
x(n)
X(ej )
(n)
(n n0 )
1
ejn0
X
2( + 2k)
k=
u(n)
X
1
( + 2k)
+
1 ej
k=
ej0 n
cos(0 n + )
sin(0 n + )
1
1 aej
1
(1 aej )2
sin ((N + 1)/2) jN/2
e
sin(/2)
1 si || < c
X(ej ) =
0 si c < || <
X
2( 0 + 2k)
k=
k=
k=
Annexe B
Filtres de Butterworth
Les coefficients des filtres prototypes de Butterworth sont donnes dans la deuxi`eme colonne du
tableau B.1 pour des filtres dordre 2 `a 8. Les coefficients donnes sont ceux du denominateur
de la fonction de transfert H(p) du filtre analogique.
Les reponses frequentielles de ces filtres sont donnees figure B.1. Leur frequence de coupure
est normalisee `
a = 1. Ces courbes permettent de determiner lordre du filtre.
Le programme Matlab ci dessous permet de determiner lordre dun filtre de Butterworth, puis
de creer un polynome le representant. Dans le cas du filtre passe-bas prototype, on posera
Wn= 1.
[N, Wn] = BUTTORD(Wp, Ws, Rp, Rs);
% Wp and Ws are the passband and stopband edge frequencies, normalized from 0 to 1
% where 1 corresponds to pi radians/sample
% Rp (dB) and Rs (dB) are the passband ripple and stopband attenuation
% Wn is the Butterworth natural frequency or 3 dB frequency
% N is the filter order
[b,a] = BUTTER(N,Wn,s);
% Designs an Nth order lowpass digital
% Butterworth filter and returns the filter coefficients in length
% N+1 vectors B (numerator) and A (denominator)
B.2
Filtres de Bessel
Les coefficients des filtres prototypes de Bessel sont donnes dans la troisi`eme colonne du
tableau B.1 pour des filtres dordre 2 `a 8. Les coefficients donnes sont ceux du denominateur
de la fonction de transfert H(p) du filtre analogique.
Les reponses frequentielles de ces filtres sont donnees figure B.2. Leur frequence de coupure
est normalisee `
a = 1. Ces courbes permettent de determiner lordre du filtre.
Le programme Matlab ci dessous permet de creer un polynome de Bessel.
151
152
Abaques Butterworth
10
2
0.5
3
20
4
9
1
30
40
Gain (dB)
Gain (dB)
6
7
6
1.5
5
50
9
60
2
2.5
70
80
0.5
1.5
2
1/s
2.5
3.5
0.1
0.2
0.3
0.4
0.5
1/s
0.6
0.7
0.8
0.9
0.7
0.8
0.9
10
2
0.5
20
3
Gain (dB)
Gain (dB)
30
6
40
7
4
1.5
5
6
50
60
8
2.5
70
80
0.5
1.5
2
1/s
2.5
3.5
0.1
0.2
0.3
0.4
0.5
1/s
0.6
153
Cellule
Butterworth
Bessel
1
1
2
1
2
1
2
3
1
2
3
1
2
3
4
1
2
3
4
p2 + 1.4142p + 1
p2 + 1.0000p + 1
p+1
p2 + 1.8477p + 1
p2 + 0.7853p + 1
p2 + 1.6180p + 1
p2 + 0.6180p + 1
p+1
p2 + 1.9318p + 1
p2 + 1.4142p + 1
p2 + 0.5176p + 1
p2 + 1.8019p + 1
p2 + 1.2469p + 1
p2 + 0.4450p + 1
p+1
p2 + 1.9615p + 1
p2 + 1.6629p + 1
p2 + 1.1111p + 1
p2 + 0.3901p + 1
0.618p2 + 1.3616p + 1
0.4771p2 + 0.9996p + 1
0.756p + 1
0.3889p2 + 0.7742p + 1
0.4889p2 + 1.3396p + 1
0.4128p2 + 1.1401p + 1
0.3245p2 + 0.6215p + 1
0.665p + 1
0.3887p2 + 1.2217p + 1
0.3504p2 + 0.9686p + 1
0.2756p2 + 0.513p + 1
0.3394p2 + 1.0944p + 1
0.301p2 + 0.8303p + 1
0.238p2 + 0.4332p + 1
0.593p + 1
0.3161p2 + 0.1112p + 1
0.2979p2 + 0.9753p + 1
0.2621p2 + 0.7202p + 1
0.208p2 + 0.3727p + 1
Chebyshev 0.1dB
`a 0.1dB en BP
0.3017p2 + 0.7158p + 1
0.5918p2 + 0.5736p + 1
1.031p + 1
0.7518p2 + 0.3972p + 1
1.6053p2 + 2.0475p + 1
0.8368p2 + 0.2787p + 1
1.5725p2 + 1.3712p + 1
1.855p + 1
3.797p2 + 3.2506p + 1
0.8854p2 + 0.2031p + 1
1.4360p2 + 0.8999p + 1
0.9153p2 + 0.1534p + 1
3.0283p2 + 2.056p + 1
1.3276p2 + 0.6237p + 1
2.654p + 1
6.8675p2 + 4.4178p + 1
0.935p2 + 0.1196p + 1
1.2517p2 + 0.4561p + 1
2.4026p2 + 1.3103p + 1
Table B.1 Coefficients des filtres prototypes. Les filtres sont donnees en cascade de cellules
du second ordre et correspondent `
a 1/H(p)
154
B.3
Filtres de Chebyshev
Les coefficients des filtres prototypes de Chebyshev dondulation 0.1dB dans la bande passante
sont donnes dans la quatri`eme colonne du tableau B.1 pour des filtres dordre 2 `a 8. Les
coefficients donnes sont ceux du denominateur de la fonction de transfert H(p) du filtre
analogique.
Les reponses frequentielles des filtres prototypes de Chebyshev dondulation 0.1dB et 1dB
dans la bande passante sont donnees figures B.3 et B.4. Leur frequence de coupure est normalisee `a = 1. Ces courbes permettent de determiner lordre du filtre.
Le programme Matlab ci dessous permet de determiner lordre dun filtre de Chebyshev
dondulation 0.1dB, puis de creer un polynome le representant. Dans le cas du filtre passe-bas
prototype, on posera Wn= 1.
[N, Wn] = CHEB1ORD(Wp, Ws, Rp, Rs);
% Wp and Ws are the passband and stopband edge frequencies, normalized from 0 to 1
% where 1 corresponds to pi radians/sample
% Rp (dB) and Rs (dB) are the passband ripple and stopband attenuation
% Wn is the Chebyshev natural frequency or 3 dB frequency
% N is the filter order
[b,a] = CHEBY1(N,0.1,Wn,s)
% Designs an Nth order lowpass digital Chebyshev filter
% with 0.1dB of passband ripple and returns the filter coefficients in length
% N+1 vectors B (numerator) and A (denominator)
2
10
0.01
0.02
20
4
0.03
2
0.04
5
Gain (dB)
Gain (dB)
30
40
6
0.05
0.06
50
0.07
7
60
0.08
70
0.09
80
0.5
1.5
9
2
1/s
2.5
3.5
0.1
3
0
0.1
0.2
0.3
0.4
0.5
1/s
0.6
0.7
0.8
Figure B.3 Reponse en frequence des filtres de Chebyshev `a 0.1dB dondulation en bande
passante
0.9
155
10
2
0.1
20
0.2
0.3
30
2
0.4
40
Gain (dB)
Gain (dB)
5
50
0.5
5
0.6
6
60
0.7
0.8
70
80
0.5
1.5
8
2
1/s
0.9
2.5
3.5
3
0
0.1
0.2
0.3
0.4
0.5
1/s
0.6
0.7
0.8
Figure B.4 Reponse en frequence des filtres de Chebyshev `a 1dB dondulation en bande
passante
B.4
Les reponses frequentielles des filtres prototypes de Cauer (elliptiques) dondulation 0.1dB
et 1dB dans la bande passante, et dattenuation en bande attenuee de 30dB et 50dB, sont
donnees figures B.5 et B.6. Leur frequence de coupure est normalisee `a = 1. Ces courbes
permettent de determiner lordre du filtre.
0.9
156
0.01
10
3
0.02
20
0.03
4
6
8
9
7
2
0.04
Gain (dB)
Gain (dB)
30
40
0.05
0.06
50
0.07
60
0.08
70
0.09
80
0.5
1.5
2
1/s
2.5
3.5
0.1
5
3
0
0.1
0.2
0.3
0.4
0.5
1/s
0.6
0.7
0.8
0.9
0.9
Figure B.5 Reponse en frequence des filtres elliptiques de Cauer `a 0.1dB dondulation en
bande passante et 30dB dattenuation en bande attenuee
0
4
0.1
10
2
0.2
20
3
0.3
30
Gain (dB)
Gain (dB)
0.4
40
50
6
8
60
9
5
4
7
0.5
0.6
0.7
0.8
70
0.9
3
80
0.5
1.5
2
1/s
2.5
3.5
0.1
0.2
0.3
0.4
0.5
1/s
0.6
0.7
0.8
Figure B.6 Reponse en frequence des filtres elliptiques de Cauer `a 1dB dondulation en
bande passante et 50dB dattenuation en bande attenuee
Bibliographie
[Ana95] Analog Device. ADSP-2100 Family Users Manual, 3 edition, September 1995.
[Ara97]
G. Araujo. Code Generation Algorithms for Digital Signal Processors. PhD thesis,
Princeton University Department of EE, Princeton, May 1997.
[Bie97]
J. Eyre and J. Bier. The Evolution of DSP Processors. IEEE Signal Processing
Magazine, 17(2) :4451, March 2000.
[Ga96]
G. Goossens and al. Programmable Chips in Consumer Electronics and Telecommunications. In G. De Micheli and M SAmi, editors, Hardware Software Co-Design,
pages 135164. Kluwer Academic Publishers, 1996.
[Ga97]
[HP96]
[Ka91]
M. Kunt and al. Techniques modernes de Traitement Numerique du Signal. Collection CNET-ENST, Presses Romandes, Masson, 1991.
[Lap96] P. Lapsley. Fixed-Point DSP Processors : History and Trends. In U.C. Berkeley
(VLSI Signal Processing), April 1996.
[LBSL96] P. Lapsley, J. Bier, A. Shoham, and E. A. Lee. DSP Processor Fundamentals :
Architectures and Features. Berkeley Design Technology, Inc, Fremont, CA, 1996.
[Lee88]
[Lee89]
E. Lee. Programmable DSP Architectures : Part II. IEEE ASSP Magazine, pages
414, Janv. 1989.
[Luc]
[Luc99]
Lucent Technologies, Motorola. SC140 DSP Core Reference Manual. Lucent Technologies, December 1999.
158
BIBLIOGRAPHIE
[Mot94] Motorola. DSP56000 24-Bit Digital Signal Processor UserS Manual. Motorola,
1994.
[MWK98] C. Moerman, R. Woudsma, and P. Kievits. Embedded DSP Technologies in Consumer applications. In 9th International Conference on Signal Processing Applications
and Technology (ICSPAT 98), Toronto, September 1998. Miller Freeman.
[OS75]
[OS99]
[Pa97]
[Peg99]
A. Pegatoquet. Methode destimation de performance logicielle : application au developpement rapide de code optimise pour une classe de DSP. PhD thesis, Universite
de Nice Sophia Antipolis, 1999.
[PM73]
T.W. Parks and J.H. McClellan. A unified approach to the design of optimum linear
phase digital filters. IEEE Transactions on Circuit Theory, 20 :697701, Nov. 1973.
[Rab99] J.M. Rabaey. Managing Power Dissipation in the Generation after Next Wireless
Systems. In 2`eme journees francophones detudes Faible Tension Faible Consommation FTFC99, Paris, France, 26-28 mai 1999.
[Str00]
[Str02a] W. Strauss. Forward Concepts Dsp Market Bulletin. Technical report, Foward
Concepts, Tempe, Arizona, USA, March 2002.
[Str02b] W. Strauss. VoIP and Packet Voice DSP Markets. Technical Report 2201, Foward
Concepts, Tempe, Arizona, USA, April 2002.
[Sud98] A. Sudarsanam. Code Optimization Libraries for Retargetable Compilation for Embedded Digital Signal Processors. PhD thesis, Princeton University Department of
EE, Princeton, May 1998.
[Tex98]
[Tex99a] Texas Instruments. TMS320C54X Dsp Cpu And Peripherals Reference Set Volume
I. Texas Instruments, Dallas, January 1999.
[Tex99b] Texas Instruments. TMS320C6000 Cpu And Instruction Set Reference Guide. Texas
Instruments, Dallas, Sept 1999.
[TH97]
J. Turley and H. Hakkarainen. TIs New C6x DSP Screams at 1,600 MIPS. Microprocessor Report, 11(2), Frebruary 1997.
[Za96]
V. Zivojnovic and al. DSP Processor/Compiler Co-Design : A Quantitative Approach. In Proceedings of the 9th International Symposium on System Synthesis
(ISSS 96), La Jolla, November 1996.