DSP - Tout Les Chapitres
DSP - Tout Les Chapitres
DSP - Tout Les Chapitres
2
Chapitre 0 : Conversion de
l'analogique vers le numérique I
1. Introduction
Définition
Un signal x(t) est dit analogique si son amplitude peut prendre une infinité de valeurs dans un
intervalle donné : x(t) est une fonction contenue du temps.
Un signal est dit binaire si son amplitude ne peut prendre que deux valeurs ( 0 et 5V)
Un signal numérique est un signal dont l'amplitude à un instant donné est représentée par un
mot binaire de N bits.
Remarque
Les signaux usuels (musique, image, signaux biologiques, données issues de capteurs ...) sont le plus
souvent des grandeurs analogiques continues qu'il est difficile de stocker ou de transmettre sans
dégradation.
Le passage à la numérisation à connue un certaine avantages :
la dynamique et la bande passante très bonnes si on respecte certaines règles simples
les parasites ou bruit de fond électrique, s'ils restent raisonnables, n'ont plus d'influence sur la
qualité du signal
la transmission par radio, le traitement et la mémorisation du signal n'entraînent en général pas
de perte de qualité.
en cas d'erreurs de transmission ou de lecture, des circuits de détection et de correction
d'erreurs peuvent reconstituer le signal
un signal numérique est un signal facile à gérer, facile à enregistrer, facile à filtre et en générale
facile à traiter.
3
Chapitre 0 : Conversion de l'analogique vers le numérique
Exemple
Définition
Pour échantillonner un signal analogique continu x(t) et le transformer en une suite discrète
d'échantillons x*(t), on prélève périodiquement à des intervalles de temps Te la valeur du signal à
l'aide d'un échantillonneur .
4
Chapitre 0 : Conversion de l'analogique vers le numérique
Échantillonneur :
commutateur analogique K
toutes les Te secondes
Te est la période d'échantillonnage
fe=1/Te est la fréquence d'échantillonnage
5
Chapitre 0 : Conversion de l'analogique vers le numérique
en téléphonie, on se contente d'une qualité moyenne, avec des fréquences vocales limitées à la
bande de 300 Hz à Fmax= 3400 Hz, alors dans le cadre du réseau téléphonique numérique, la
fréquence d'échantillonnage standard est de fe= 8000 Hz
la musique nécessite une bande allant de 20 Hz jusqu'à Fmax= 20 kHz pour une qualité optimale,
la fréquence d'échantillonnage standard est de fe= 44,1 kHz
un signal vidéo de télévision a un spectre qui s'étend pratiquement du continu jusqu'à Fmax= 5
ou 6 MHz selon la qualité de l'image, dans le cas de la vidéo numérique, la fréquence
d'échantillonnage standard est de fe= 13,5 MHz
3. Le filtre anti-repliement
Pour éviter les problèmes de repliement de spectre, il faut s'assurer que le spectre du signal
analogique x(t) est vraiment limité à la valeur Fmax, toujours un peu inférieure à fe/2.
Pour cela, on place avant l'échantillonneur un filtre à coupure raide qui atténue très fortement tous les
signaux parasites au-delà de la fréquence limite Fmax: c'est le filtre anti-repliement.
Ce filtre anti-repliement doit simplement :
laisser passer le signal sans le déformer, donc avoir une courbe de réponse plate entre 0 et Fmax
atténuer au maximum toutes les composantes au-delà de fe/2, qui seraient sinon repliées et
apparaîtraient dans le signal échantillonné
6
Chapitre 0 : Conversion de l'analogique vers le numérique
4. L'échantillonneur-bloqueur
Pour permettre la conversion analogique-numérique entre deux instants d'échantillonnage, il faut
maintenir la valeur du signal x*(t) à l'entrée du convertisseur jusqu'à l'arrivée de l'échantillon suivant.
Exemple
5. La quantification linéaire
Le signal échantillonné et bloqué en marches d'escalier variant entre 0 et E (pleine échelle) ou -E/2
à+E/2peut maintenant être converti en une suite de valeurs binaires :
le nombre de valeurs binaires n'est pas infini, il faut donc classer les échantillons analogiques en
différents niveaux
la fonction de quantification attribue le même niveau à tous les signaux situés dans une plage de
tension donnée
l'amplitude de cette plage s'appelle le quantum q
Le nombre de niveaux de quantification est bien-sûr lié au nombre de bits N du CAN :
un convertisseur 8 bits quantifie le signal analogique sur 256 niveaux, q = 19,5 mV si E = 5V
7
Chapitre 0 : Conversion de l'analogique vers le numérique
Remarque :
la quantification dégrade toujours la qualité du signal, mais cette dégradation peut être
maîtrisée
on peut toujours améliorer la qualité de la numérisation en augmentant le nombre de bits N
une numérisation sur 16 bits (cas du CD audio) donne un rapport S/B = 94 dB, le bruit de
quantification est alors à peine perceptible
Le bruit de quantification peut devenir plus gênant quand l'amplitude du signal est plus faible, ce qui
est dans les applications de téléphonie par exemple.
Solution Les quantifications non linéaires
le pas est petit pour les échantillons de faible amplitude
le pas est grand pour des échantillons de forte amplitude
Une quantification à échelle logarithmique
8
Chapitre 01 : Généralité sur les DSPs II
1. Introduction au DSPs
Les et sont des coefficients numériques qui définissent la nature du filtre : passe haut, passe bas
... etc
9
Chapitre 01 : Généralité sur les DSPs
2. Définition
Définition
Le terme DSP est un acronyme de Digital Signal Processor ou Processeur de signal numérique.
C'est un processeur adapté pour le de traitements numérique des signaux (TNS).
C'est-à-dire c'est un micro-processeur conçu pour exécuter des applications de traitements
numérique des signaux en temps réel
Exemple : FFT, Filtrage numériques, filtrage adapté, convolution, corrélation ...etc
10
Chapitre 01 : Généralité sur les DSPs
Le séquenceur de programme
Le compteur de programme
Contrôle de déroulement du et le registre d'instruction
s'occupe du flux de
programme s'occupe de déroulement du
programme
programme
11
Chapitre 01 : Généralité sur les DSPs
FFT
6269 6.27 µS 43916 43.92 µS
Complexe 1k
FIR
Complexe
2646 2.65 µS 26072 26.07µS
128 échan,
16 coéff
12
Chapitre 01 : Généralité sur les DSPs
Remarque : les DSP utilise typiquement la structure du harvard néanmoins il existe des DSP qui utilise
la structure de Von Neumann.
13
Chapitre 01 : Généralité sur les DSPs
14
Chapitre 02 : Étude du DSP
TMS320C6730 III
Besoin de parallélisme
Approche SIMD : SIMD: Single Instruction on Multiple Data
La même instruction est appliquée simultanément sur plusieurs données.
MIMD
Fondamental
Il existe différentes familles du DSP TMS dont la famille DSP TMS320C6x ou famille C6000 fabriqués par
Texas Instruments.
C62x /C64x /C67x (Vergule Fixe - Flottante- Fixe/Flottante
15
Chapitre 02 : Étude du DSP TMS320C6730
DSP TMS320C6713
Fréquence Horloge :
300 MHz
2400 MIPS
1800 MFLOPS
Mémoire Interne : 264 KO
Mémoire Externe : 1 GO
Le DSP TMS320C6713B à virgule flottante est basé sur le processeur C67xʻCPU C6000' . Le CPU
récupère des mots d'instruction très longs (VLIW: Very Long Instruction Word) de largeur de 256 bits,
pour fournir jusqu'à huit instructions de 32 bits aux huit unités fonctionnelles au cours de chaque cycle
d'horloge.
Nous trouvons un bus de 256 bits vers la mémoire de programme interne. Chaque groupe de huit
instructions est appelé un paquet de récupération.
Le CPU a huit unités fonctionnelles qui peuvent fonctionner en parallèle, il est divisée en deux sous-
ensembles appelés chemin de données A et chemin de données B (Data Path A et Data Path B).
Les instructions sont envoyées aux unités fonctionnelles sous forme de paquets d'exécution avec un
nombre variable de 32 bits mots d'instruction. Cette fonction de longueur variable distingue le ʻCPU
C6000' des autres architectures VLIW. Les huit unités fonctionnelles comprennent :
une unité .M utilisée pour l'opération de multiplication
Deux unités .L .S sont utilisées pour les opérations logiques et arithmétiques, les branchements
et boucles du programme.
une unité .D sont utilisée pour : les transferts de données entre le registre des fichiers et la
mémoire de données (lecture et l'écriture), et pour les opérations arithmétiques.
Remarqur : 6 ALUs et 2 miltiplicateur
16
Chapitre 02 : Étude du DSP TMS320C6730
Exemple:
MAC= Load (D)+Mul (M) + Add (L)
Remarque
Le concept VLIW Very Long Instruction Word a été introduit pour la première fois par TI pour cette
famille de DSP, il désigne des codes instructions de taille fixe 256 bits, divisés en huit mots de 32 bits
destiné chacun en parallèle à l'une des huit unités fonctionnelles, de sorte que idéalement les huit
instructions devraient s'exécuter simultanément pour une pleine exploitation du parallélisme, en
pratique cet optimum est rarement réalisé.
17
Chapitre 02 : Étude du DSP TMS320C6730
Il y a 16 registres 32 bits associés à chaque chemin de donnée, A0-A15 côté A, B0-B15 coté B. Toute
interaction avec les unités fonctionnelles se fait obligatoirement à travers ces registres
Le bus interne est constitué d'un bus 32 bits d'adresse de programme, un bus 256 bits d'instructions
de programme pouvant recevoir huit instructions 32 bits.
Deux bus 32 bits d'adresses de données DA1 et DA2, deux bus 32 bits chargement de données LD1 et
LD2, et deux bus 32 bits stockage de données ST1 et ST2. En outre, il existe un bus 32 bits de données
DMA et un bus 32 bits d'adresses DMA. La mémoire hors-puce ou externe est accessible via un bus 20
bits d'adresses et un bus 32 bits de données contrôlés par EMIF External Memory Interface.
18
Chapitre 03 : Virgule fixe vs Virgule
flottante IV
1. Nombre entier
1.1. Nombres entiers non signés
les entiers non signés représentent les nombre de zero à l'infini des nombres entiers.
Format binaire sur N bits :
Dynamique :
-(2(N-1)-1)→(2(N-1)-1)
19
Chapitre 03 : Virgule fixe vs Virgule flottante
b) Format C1
Le bit de signe 0 si l'entier est positif
Le bit de signe 1 si l'entier est négatif
Le reste des bits :
Positif → Format non signé
Négatif → C1 de son opposé
Dynamique :
-(2(N-1)-1)→(2(N-1)-1)
c) Format C2
Le bit de signe 0 si l'entier est positif
Le bit de signe 1 si l'entier est négatif
Le reste des bits :
Positif → Format non signé
Négatif → C2 de son opposé
• Dynamique :
-(2(N-1))→(2(N-1)-1)
20
Chapitre 03 : Virgule fixe vs Virgule flottante
Un dépassement de capacité overflow est détecté s'il y a un changement de signe dans le résultat
d'une addition de deux entiers C 2 de même signe.
Exemple 4 + 5 = 9 sur 4 bits :
2. Nombre fractionnaire
2.1. Représentation en virgule Fixe -Format Q_(n,m)
Définition
Permet de représenter un nombre réel 𝒙 sur N bits en utilisant une représentation fractionnaire en
fonction d'un point fictif (radix-) considéré comme séparateur entre la partie fractionnaire (M-bits) et la
partie entière (N-bits)
21
Chapitre 03 : Virgule fixe vs Virgule flottante
Exemple
Précision et dynamique :
La précision dans un format Q dépend du nombre des bits fractionnaires M :
Δ=2-M
La dynamique du format Q:
-(2(N-1))→(2(N-1)-Δ)
• Q16,0 c'est le format entier (integer) : 0x8000 → 0x7FFF
Résultat converti au format (Q1.15) après un décalage de 1 bit et une troncation sur la partie
fractionnaire
22
Chapitre 03 : Virgule fixe vs Virgule flottante
Représentation non-normalisée
Impossibilité de représenter la valeur 0,0 dans une représentation normalisée, car le nombre à
gauche de la mantisse est toujours égale à 1
Pour résoudre ce problème, on passe à une représentation non-normalisée :
Mettre les bits de l'exposant à 0
Mettre la mantisse sous la forme : 0 ≤ 0,M < 1
La représentation non normalisés est utilisé pour représenter les nombres proches de 0.
S: Bit de signe
F: Bits Fractions (ou M: Mantisse) 23 bits
E: bits Exposant 8 bits avec un décalage (biais) maximum de: 28-1 - 1 = 127
Exemple
0 10000001 10100000000000000000000=6.5
3.40282346 × 1038
Valeur normalisée minimale :
0 000...1 0000....0 = 1.000 ... 0 × 2𝟏-127
1.175494 × 10-38
Valeur non-normalisée maximale :
0 000... 1111....1 = 0.111 ... 1 × 2-𝟏𝟐𝟔
23
Chapitre 03 : Virgule fixe vs Virgule flottante
S: Bit de signe
F: Bits Fractions (ou M: Mantisse) 52 bits
E: bits Exposant 11 bits avec un décalage (biais) maximum de: 211-1 - 1 = 1023
24