Vous êtes sur la page 1sur 25

1

Support du cours de : D.S.P: Digital


Signal Processing
- Programmation -
LF3 STIC
à l’ISIM de Monastir
Enseignant : Farès Tounsi, PhD, HDR
A.U.: 2020/2021
(v1)
Chapitre 1 :

Codage numérique et traitement


des données dans le DSP

3
Le codage des nombres réels
La représentation des nombres doit répondre à deux
exigences contradictoires :
Précision: intervalle entre deux rationnels codés :
>>> Doit être le plus petit possible

Dynamique: Rapport entre le plus grand rationnel et le plus


petit rationnel codés :
>>> Doit être la plus étendue possible

Les unités de calcul des DSP travaillent soit en :

format fixe format flottant


(notation décimale) (notation scientifique) 4
Représentation format fixe (entiers)
Signées Rappel: Complément à 2
Implantation efficace : Inversion des bits
Dynamique

puis ajout de 1 C2(x) = C1(x) + 1

En pratique:

Représentation circulaire
Ex: sur 3 bits
En ajoutant 1 à la
plus grande valeur
positive on obtient
la valeur négative
extrême.
5
Représentation format fixe (réels)
Le format d’une donnée ne varie pas au cours du temps
Représentation : partie entière - partie fractionnaire
Q3,2
Qm,n
-2m

La représentation de nombres binaires signés à virgule fixe suit la représentation de


nombres entiers signés à complément à deux.
6
Exemple: 23,4710= 2 . 101 + 3 . 100 + 4 . 10-1 + 7 . 10-2
Format (b, m, n) en virgule fixe

Q3,2

Exercice:
Donner la représentation en virgule fixe 7
des formats (b , m, n) suivants: (5,7,-3); (6,-2,7); (9,0,8); (7,3,3)
Format Qk en virgule fixe
(Si un seul nombre est précisé, c’est la partie fractionnaire)

Q0 désigne le
cas particulier
des entiers
signés

Exemple: Représentez le nombre 0.875 en format Q15 signé


Réponse: y= 0.875 x 215 = 28672 =214 +213 +212;
Ainsi 0.875= 0111000000000000;
la représentation en format Q15= 0,111000000000000
8
Format Qk en virgule fixe
Ex: Q5 sur 8 bits
- Partie entière codé sur 3 bits
(dont 1 de signe)
- Partie fractionnaire codée sur 5 bits
- Valeurs comprises entre -4 et +3.96875
- Erreur maximale q/2 = 2-6 si arrondi au plus proche
Pour changer le signe, on inverse tous les bits et on ajoute 1 à la position la
moins significative (ou -1 puis inverser).

Q1 sur 4 bits Q4 sur 8 bits Q3 sur 5 bits


Si on ne précise pas le format Qk, un nombre binaire peut représenter plusieurs
valeurs.
9
Interprétation binaire

10
Représentation Qk sur 16 bits
Quel format faut-il pour représenter tous les réels -1≤ Nombre <1 ?

Généralement, pour obtenir une bonne dynamique sur l’intervalle [-1, 1[, utiliser le
format QN-1 sur N bits.
Format Q15: sur 16 bits, le format Q15 permet de représenter tous les réels entre -1 et
1 avec une précision q=2-15 11
Choix du format Qk

(partie entière)

Exemple: {-0.1, -0.066, 0.08}  ?, Donner la précision ?


12
/ à savoir log2(0,1)= -3,32
Représentation en virgule fixe
On définit:
– Nc le nombre de valeurs représentables du codage = 2N - 1
– La dynamique d’un codage D représente la différence entre la valeur minimale et
maximale :D = Xmax –Xmin

En décibel:

13
Cas particuliers de codage
Deux représentations particulières liées à la position de la
virgule sont couramment utilisées:
• Cadrage à Droite: Lorsque la virgule est cadrée à droite la
valeur codée est entière
• Cadrage à Gauche: Lorsque celle-ci est cadrée à gauche la
donnée est fractionnaire.

Les caractéristiques de ces deux représentations sont


présentées dans le tableau suivant:

14
Les opérations: l’addition

• L'addition se fait bit par bit avec


propagation des retenues.
• Pas de débordement  dernier
retenue peut être ignorée.
Exemple: 6+(-5) et 3+7
• Lasoustraction de nombres
binaires signés à virgule fixe se fait
comme pour les nombres entiers.
15
Les opérations: la multiplication

• La multiplication se fait
comme pour les
nombres entiers.
• On fait d’abord la
multiplication puis à la fin
on ajuste la virgule à la
bonne place.

16
Codage en virgule flottante
Représentation : exposant - mantisse
La mantisse et l’exposant sont représentés
eux même en Cà2.
Ils peuvent donc prendre des valeurs négatives.

En binaire:

IEEE 754,

17
exposant codé = exposant réel + excédent
Virgule flottante, IEEE 754
Représentation en simple précision

Exposant – calage = décalage


Exposant = décalage + 2k-1-1
Pour prendre en compte les exposants négatifs, on rajoute 2k-1 – 1 (=127) 18
soit (01111111)2 à l'exposant
IEEE 754, Exemple (1)

Représentation en simple précision


Exemple 1: Traduire en binaire format flottant simple précision 32 bits
le nombre : - 1039,0
1)Signe :1
2)Traduire en binaire (1039)10 = (0000 0100 0000 1111)2
3)Constituez la mantisse : 1, mantisse × 2n

0000 0100 0000 1111 = 1,00 0000 1111 × 210

1 00 0 00 0 11 1 1

(décalage de dix chiffres vers la droite après la virgule )

19
IEEE 754, Exemple (2)
Représentation en simple précision
4)Constituez le calage IEEE en simple précision 8 bits : 28 - 1 - 1 = 127
5)Constituez l'exposant : 0000 0100 0000 1111 = 1,00 0000 1111 × 210
exposant = 10 + calage = 10 +127= 137
4)Exprimer l'exposant en binaire (137)10 = (1000 1001)2
5)Etendre la partie fractionnaire à 23 bits
mantisse sur 23 bits = 000 0001 1110 0000 0000 0000

11 0 0 01 0 01 00 0 00 0 11 1 1 00 0 00 0 00 0 00 0 0

(- 1039,0)10 = (1100 0100 1000 0001 1110 0000 0000 0000)2


En hexadecimal C4 81 E0 00

20
Exemple 1
Soit à coder en simple précision la valeur 525,5.

 525,5 est positif (-1)0 donc le 1er bit sera s = 0.


 Sa représentation en base 2 est la suivante : 1000001101,1
 En normalisant, on trouve : 1,0000011011 × 29
 On ajoute 127 à l'exposant 9 ce qui donne 136, soit en base 2 :
 = 10001000
 La mantisse est composée de la partie décimale de 525,5 en
base 2 normalisée, c'est-à-dire 0000011011.
 Comme la mantisse doit occuper 23 bits, il est nécessaire
d'ajouter des zéros pour la compléter :
00000110110000000000000

La représentation du nombre 525,5 en binaire avec la norme IEEE


754 est donc :
0 1000 1000 00000110110000000000000
0100 0100 0000 0011 0110 0000 0000 0000
(4403600 en hexadécimal) 21
IEEE 754, Règles
Certaines conditions sont toutefois à respecter pour les exposants :
 l'exposant 00000000  forme dé-normalisée
 l'exposant 11111111 est interdit. On s'en sert toutefois pour signaler des erreurs,
on appelle alors cette configuration du nombre NaN, ce qui signifie Not a Number
 Il faut rajouter 127 (01111111) à l'exposant pour une conversion de décimal vers
un nombre réel binaire. Les exposants peuvent ainsi aller de -126 à +127 en
simple précision.

le plus petit nombre est ± 2−126-23 ≈ ± 1,40129 × 10−45,


22
le plus grand nombre est ± 1,11111111111111111111111 × 2 ≈ ± 3,4 × 10 .
127 38
Nombres dé-normalisé
Un nombre est dit dé-normalisé lorsque: exposant = 0, et mantisse ≠ 0

Si l'on suivait la même représentation que pour les nombres à exposant non nul, on
aurait
valeur = signe × (1 + mantisse) × 2-décalage; mais la valeur retenue est
valeur = signe × mantisse × 2-décalage + 1
c'est-à-dire que pour un exposant codé sur 8 bits (représentation dite à simple
précision), on a

valeur = signe × mantisse × 2-126

23
Précisions en virgule flottante

Pour les très petits nombres Écart de 1.40129846432481707092372958329.10-45

1.40129846432481707092372958329E-45

2.80259692864963414184745916658E-45

Pour les petits nombres Écart de 1,1920928955078125.10-7

1.00000011920928955078125
24
Précisions en virgule flottante
Pour les très petits nombres Écart de 1.40129846432481707092372958329.10-45
Pour les petits nombres Écart de 1,1920928955078125.10-7
Pour les grands nombres Écart de 0.000000256. 109 = 256 !

3.0E9

3.000000256E9

Pour les très grands nombres Écart de 2.2824096…. 1031 !!!

1.70141183460469231731687303716E38

1.70141203742878835383357727663E38

Les nombres ne sont pas également espacés dans l’ensemble F des nombres flottants
représentables.

25

Vous aimerez peut-être aussi